Итерация по списку кортежей и внутри кортежей с использованием цикла for - PullRequest
0 голосов
/ 02 августа 2020

Просто интересно, как перебирать список кортежей и одновременно перебирать элементы внутри кортежей.

# I am able iterate over a list of tuples like this,
fruit_list = [('banana','apple','mango'),('strawberry', 'blueberry','raspberry')]
for fruit_tup in fruit_list:
    print(fruit_tup)

#output:
#('banana', 'apple', 'mango')
#('strawberry', 'blueberry', 'raspberry')

# Iterate through the items inside the tuples as so,
for (item1,item2,item3) in fruit_list:
    print(item1,item2,item3)

#output:
#banana apple mango
#strawberry blueberry raspberry

# This is incorrect but I tried to iterate over the tuples and the items inside the tuples as so
for fruit_tup,(item1,item2,item3) in fruit_list:
    print(fruit_tup,item1,item2,item3)

#required output:
#('banana', 'apple', 'mango') banana apple mango
#('strawberry', 'blueberry', 'raspberry') strawberry blueberry raspberry

Есть идеи, как это сделать?

Ответы [ 3 ]

2 голосов
/ 02 августа 2020

Вам нужен вложенный l oop:

fruit_list = [('banana','apple','mango'),('strawberry', 'blueberry','raspberry')]
for fruit_tup in fruit_list:
    for fruit in fruit_tup:
        print(fruit, end=' ') # no newline but a single space
    print() # now do a newline

Печать:

banana apple mango
strawberry blueberry raspberry
0 голосов
/ 02 августа 2020

Чтобы создать список ваших выходных данных:

lst = [('banana','apple','mango'),('strawberry', 'blueberry','raspberry')]
output = [" ".join(tupel) for tupel in lst]

Если вы хотите напрямую их распечатать:

[print(" ".join(tupel)) for tupel in lst]

Если вы хотите l oop через тупели и список одновременно:

output = [fruit for tupel in lst for fruit in tupel]
0 голосов
/ 02 августа 2020

Вы можете сделать следующее:

for lst in fruit_list:
    for fruit in lst:
        print(fruit, end=' ')
    print()
...