2014-04-01 20 views
2

在python中循環的後續情況下會發生什麼?在每次迭代中,我的值會如何變化。序列x和y是否結合形成單個序列?使用for循環迭代python中的2個列表中的變量

for i in x, y: 
    do_something(i) 

代碼在這我想是這樣的:

for sentence in snippet, phrase: 
    result = sentence[:] 

片段和短語參數其值將用列表來代替,即,片段和短語都將列出。

+1

爲什麼不試試呢? – devnull

回答

2

UPDATE:好的,事實證明你問的是完全不同的東西。

您擁有的代碼不會合並snippetphrase。在循環的第一次迭代中,將snippet的副本分配給result。在第二次迭代中,將phrase的副本分配給result,替換舊值。如果你想創建一個既snippetphrase的元素的列表,你可以只使用

result = snippet + phrase 

,或者如果你真的想用一個循環,

result = [] 
for sentence in snippet, phrase: 
    result += sentence 

x, y是元組。換句話說,它的分析是這樣的:

for i in (x, y): 
    do_something(i) 

這意味着do_something將再次上x被調用,並一度上y

如果你想從xy迭代對相應的元素,使用zip

for i in zip(x, y): 
# or 
# for x_element, y_element in zip(x, y): 
    do_something(i): 

如果你想遍歷的x的元素,那麼y的元素,你可以使用

import itertools 
for i in itertools.chain(x, y): 
    do_something(i) 

,或者xy都是列表或兩者的元組,

for i in x + y: 
    do_something(i) 
+0

請參閱更新後的問題...... – kartikeykant18

+0

@kartikey_kant:查看擴展的答案。 – user2357112