В Python я могу напечатать 3 списка по порядку по номеру индекса? - PullRequest
6 голосов
/ 23 октября 2009

Итак, у меня есть три списка:

['this', 'is', 'the', 'first', 'list']
[1, 2, 3, 4, 5]
[0.01, 0.2, 0.3, 0.04, 0.05]

Есть ли способ, который позволил бы мне печатать значения в этих списках по порядку по индексу?

, например

this, 1, 0.01 (all items at list[0])
is, 2, 0.2 (all items at list[1])
the, 3, 0.3 (all items at list[2])
first, 4, 0.04 (all items at list[3])
list, 5, 0.05 (all items at list[4])

Количество элементов в каждом списке меняется при каждом запуске сценария, но в конце они всегда имеют одинаковое количество значений. Таким образом, один раз сценарий мог создать три массива с 30 элементами, другой раз он мог создать только 15 значений в каждом и т. Д.

Ответы [ 4 ]

9 голосов
/ 23 октября 2009

То, что вы, вероятно, ищете, называется zip:

>>> x = ['this', 'is', 'the', 'first', 'list']
>>> y = [1, 2, 3, 4, 5]
>>> z = [0.01, 0.2, 0.3, 0.04, 0.05]
>>> zip(x,y,z)
[('this', 1, 0.01), ('is', 2, 0.20000000000000001), ('the', 3, 0.29999999999999999), ('first', 4, 0.040000000000000001), ('list', 5, 0.050000000000000003)]
>>> for (a,b,c) in zip(x,y,z):
...     print a, b, c
... 
this 1 0.01
is 2 0.2
the 3 0.3
first 4 0.04
list 5 0.05
3 голосов
/ 23 октября 2009

Использование zip

for items in zip(L1, L2, L3):
    print items

items будет кортежем со значением из каждого списка по порядку.

0 голосов
/ 23 октября 2009

Это наиболее очевидный способ (для новичка в Python), и, вероятно, есть лучший путь, но здесь идет речь:

#Your list of lists.
uberlist = ( list1, list2, list3 )

#No sense in duplicating this definition multiple times.
#Define it up front.
uberRange = range( len( uberList ) );

#Since each will be the same length, you can use one range.
for i in range( len( list1 ) ):
    # Iterate through the sub lists.
    for j in uberRange:
        #Output
        print uberlist[ j ][ i ];
0 голосов
/ 23 октября 2009
lists = ( ['this', 'is', 'the', 'first', 'list'], 
          [1, 2, 3, 4, 5], 
          [0.01, 0.2, 0.3, 0.04, 0.05])
print zip(*lists)

объединяет списки и останавливается, когда в самом коротком списке заканчиваются элементы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...