2016-01-17 2 views
0

Я думаю, что это может быть очень легко сделать, но я точно не знаю, как могу. Предположим, что у нас есть несколько массивов:Извлечение каждого элемента из нескольких массивов в python

x = [1, 2, 3, 4, 5] 
y = [1, 3, 5, 7 ,9] 
z = [1, 5, 10, 15, 20] 

Затем, как я могу получить каждый элемент каждого массива, используя для цикла? То, что я пытаюсь сделать, это примерно следующее:

for (x1, x2, x3) in (x, y, z): 
    print (x1, x2, x3) 

Конечно, вышеуказанный блок кода не работает. Может ли кто-нибудь сказать мне, как я могу это сделать?

+0

они всегда такие же длины? –

ответ

1

Предполагая x, y и z всегда такой же длины, вы можете использовать встроенный в zip() функции:

x = [1, 2, 3, 4, 5] 
y = [1, 3, 5, 7 ,9] 
z = [1, 5, 10, 15, 20] 

for (x1, x2, x3) in zip(x, y, z): 
    print(x1, x2, x3) 

Выходной

(1, 1, 1) 
(2, 3, 5) 
(3, 5, 10) 
(4, 7, 15) 
(5, 9, 20) 

Если x, y и z являются не такой же длины, то zip() вернется список кортежей, усеченных в длину до min(len(x), len(y), len(z)).

0

Вы можете использовать функцию zip, которая создает список кортежей:

>>> zip(x,y,z) 
[(1, 1, 1), (2, 3, 5), (3, 5, 10), (4, 7, 15), (5, 9, 20)] 

Zip, таким образом, создает - для данных списков - список кортежей, таких, что кортеж T я состоит из ряда элементы X я, Y я и Z я.

Далее вы можете перебрать эти кортежи:

for (x1, x2, x3) in zip(x, y, z): 
    print (x1, x2, x3) 
Смежные вопросы