У меня есть вложенный список строк.Я хочу изменить первый компонент вложенного списка на целое, второй на плавающий.
>>> mylist = [['1','2','3'],['5','6','7']] >>> datl3 = [[int(x) for x in line[0]] + line[1:] for line in mylist] >>> type(datl3[0][0]) <type 'int'> >>> >>> # turn second element to float ... datl4 = [line[0] + [float(x) for x in line[1]] + line[2] for line in datl3] Traceback (most recent call last): File "<stdin>", line 2, in <module> TypeError: unsupported operand type(s) for +: 'int' and 'list'
Как мне изменить второй компонент на плавающий?
Использование списка понимания
l = [[int(i[0]), float(i[1]), i[2]] for i in l]
[[1, 2.0, '3'], [5, 6.0, '7']]
Вы можете использовать необычную распаковку, чтобы сделать это:
>>> mylist = [['1','2','3'],['5','6','7']] >>> [[int(first),float(second),*rest] for first, second, *rest in mylist] [[1, 2.0, '3'], [5, 6.0, '7']]