迭代2个列表

beg*_*.py 0 python

我有2个列表:其中1个是列表列表.他们如下─

lists_of_lists = ['1', '4', '7', '13', '16', '21', '32', '36'],['3', '6', '8', '14', '22', '26', '31', '40']

just_a_list =['THEQUICKBROWNFOXJUMPEDOVERTHELAZYDOG', 'IWOULDLOVETOGETOVERWITHTHISASSOONASPOSSIBLE']
Run Code Online (Sandbox Code Playgroud)

lists_of_lists用于对just_a_list的元素进行切片,以便: ['1', '4', '7', '13', '16', '21', '32', '36']将对字符串进行切片'THEQUICKBROWNFOXJUMPEDOVERTHELAZYDOG',如下所示

'1' - '4' - 'HEQU'
'7' - '13' - 'KBROWNF'
'16' - '21' - 'JUMPED'
'32' - '36' - 'ZYDOG'
Run Code Online (Sandbox Code Playgroud)

要点 -

每个列表中list_of_lists都有偶数个数字.

i'th位置中的列表list_of_lists将属于位于其中的i'th位置的字符串just_a_list.

请帮助我如何执行上述过程..

谢谢

Mar*_*ers 5

使用zip()字符串和切片名单组合,然后用zip()iter()招配对的启动和停止值:

for slicelist, text in zip(lists_of_lists, just_a_list):
    for start, stop in zip(*([iter(slicelist)]*2)):
        print(text[int(start):int(stop) + 1])
Run Code Online (Sandbox Code Playgroud)

请注意,我们必须在停止索引中添加 1,因为您似乎需要包含它,而在Python中,停止索引是独占的.

这给出了:

>>> for slicelist, text in zip(lists_of_lists, just_a_list):
...     for start, stop in zip(*([iter(slicelist)]*2)):
...         print(text[int(start):int(stop) + 1])
... 
HEQU
KBROWNF
JUMPED
YDOG
ULDL
VETOGET
HTHIS
ONASPOSSIB
Run Code Online (Sandbox Code Playgroud)

  • @ begin.py:啊,但是有瑕疵,没有.:-)我解释了*大部分*是如何工作的.您可以在[Python函数文档](http://docs.python.org/2/library/functions.html)中找到我使用的函数. (2认同)