У меня есть список кортежей

[('fish', 100),
 ('cat', 1000),
 ('dog', 800)]

Я хочу внести в список первый элемент каждого кортежа.

animals = []
for i in data:
    animals.extend(i[0])
print(animals)

Получил такой результат ['f', 'i', 's', 'h', ' ', 'c', 'a', 't', ' ', 'd', 'o', 'g']

Я ожидал ['fish', 'cat', 'dog']

Я могу напечатать идеальный результат с

for i in data:
    print(i[0])

Но хотелось бы сохранить список.

-1
Osca 24 Ноя 2020 в 04:20

2 ответа

Лучший ответ

Extend примет строку как список, поэтому попробуйте .append():

animals = []
for i in data:
    animals.append(i[0])

print(animals)

Лучше понимание списка

animals = [i[0] for i in data]
3
Wasif Hasan 24 Ноя 2020 в 01:23

Вам следует использовать append вместо extend. extend добавляет в список все элементы итерации.

0
Tuqay 24 Ноя 2020 в 01:24
64978936