我正在使用Python 2.7.
假设我有一个这样的列表:
string_list = ['hello', 'apple', 'green', 'paint', 'sting']
Run Code Online (Sandbox Code Playgroud)
其中列表中的每个字符串长度相同.
我想创建一个类似于以下代码的生成器:
for i in xrange(len(string_list)):
my_gen = (ch for a_string[i] in string_list)
Run Code Online (Sandbox Code Playgroud)
所以第一次运行时,my_gen会有'h','a','g','p',s'.下一次运行它会有'e','p','r','a','t'.
只需使用内置功能zip-
像
for letters in zip('hello', 'apple', 'green', 'paint', 'sting'):
print letters
Run Code Online (Sandbox Code Playgroud)
zip是一个内置的,它可以做到这一点:每次迭代时,在元组中组合每个iterable的一个元素.
运行上面的示例,您有:
>>> for letters in zip('hello', 'apple', 'green', 'paint', 'sting'):
... print letters
...
('h', 'a', 'g', 'p', 's')
('e', 'p', 'r', 'a', 't')
('l', 'p', 'e', 'i', 'i')
('l', 'l', 'e', 'n', 'n')
('o', 'e', 'n', 't', 'g')
Run Code Online (Sandbox Code Playgroud)