Python 在两个列表之间迭代
我有两个列表:其中一个是列表列表。具体如下:-Python 在两个列表之间迭代,python,Python,我有两个列表:其中一个是列表列表。具体如下:- lists_of_lists = ['1', '4', '7', '13', '16', '21', '32', '36'],['3', '6', '8', '14', '22', '26', '31', '40'] just_a_list =['THEQUICKBROWNFOXJUMPEDOVERTHELAZYDOG', 'IWOULDLOVETOGETOVERWITHTHISASSOONASPOSSIBLE'] 列表中的列表用于对列表中的元
lists_of_lists = ['1', '4', '7', '13', '16', '21', '32', '36'],['3', '6', '8', '14', '22', '26', '31', '40']
just_a_list =['THEQUICKBROWNFOXJUMPEDOVERTHELAZYDOG', 'IWOULDLOVETOGETOVERWITHTHISASSOONASPOSSIBLE']
列表中的列表用于对列表中的元素进行切片,以便:
['1','4','7','13','16','21','32','36']
将对字符串进行切片'QuickBrownFox JumpedOvertheLazyDog'
,如下所示
'1' - '4' - 'HEQU'
'7' - '13' - 'KBROWNF'
'16' - '21' - 'JUMPED'
'32' - '36' - 'ZYDOG'
注意事项-
列表中的每个列表都有偶数个数字
在列表的list\u中的i'th
位置的列表将属于
字符串出现在列表中的i'th
位置
请帮助我了解如何执行上述流程
谢谢使用zip()
组合字符串和切片列表,然后使用zip()
plusiter()
技巧配对开始和停止值:
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])
请注意,我们必须在停止索引中添加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
使用zip()
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])
请注意,我们必须在停止索引中添加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
如果我没弄错的话:
>>> ls = just_a_list =['THEQUICKBROWNFOXJUMPEDOVERTHELAZYDOG', 'IWOULDLOVETOGETOVERWITHTHISASSOONASPOSSIBLE']
>>> ls[0]
'THEQUICKBROWNFOXJUMPEDOVERTHELAZYDOG'
# so we do
# your index was off by one
>>> ls[0][1:5]
'HEQU'
>>> ls[0][7:14]
'KBROWNF'
如果我没弄错的话:
>>> ls = just_a_list =['THEQUICKBROWNFOXJUMPEDOVERTHELAZYDOG', 'IWOULDLOVETOGETOVERWITHTHISASSOONASPOSSIBLE']
>>> ls[0]
'THEQUICKBROWNFOXJUMPEDOVERTHELAZYDOG'
# so we do
# your index was off by one
>>> ls[0][1:5]
'HEQU'
>>> ls[0][7:14]
'KBROWNF'
这是家庭作业还是现实问题?如果是后者,您需要重新考虑数据结构的设计。我的“似乎是一个家庭作业”感觉开始刺痛@莱维斯基-它的家庭作业。如果需要,我可以更改数据结构。建议?是的,我同意,听写可能是更好的选择这是家庭作业还是现实问题?如果是后者,您需要重新考虑数据结构的设计。我的“似乎是一个家庭作业”感觉开始刺痛@莱维斯基-它的家庭作业。如果需要,我可以更改数据结构。建议?是的,我同意,dict可能是更好的选择{'':[],'':[]}
@julio.alegria:注意,我没有详细解释它是如何工作的。如果我是老师,我会问一些具体的问题,比如zip(*([iter(slicelist)]*2))
部分是如何工作的。这太棒了。你能给我解释一下代码是如何工作的吗。我不知道里面到底发生了什么。@begin.py:啊,但有麻烦,不是吗我解释了它的大部分工作原理。您可以在@begin.py中找到我使用的函数:zip()
+iter()
节之前已经在堆栈溢出上讨论过,特别是在@julio.alegria中-我很乐意向您展示我正在处理的文件。这里给出的代码将帮助我完成大约10%的工作。从前,即使你是一个学习者,即使你需要帮助。如果你不能提供建设性或帮助,请不要发表评论。@julio.alegria:请注意,我没有详细解释它是如何工作的。如果我是老师,我会问一些具体的问题,比如zip(*([iter(slicelist)]*2))
部分是如何工作的。这太棒了。你能给我解释一下代码是如何工作的吗。我不知道里面到底发生了什么。@begin.py:啊,但有麻烦,不是吗我解释了它的大部分工作原理。您可以在@begin.py中找到我使用的函数:zip()
+iter()
节之前已经在堆栈溢出上讨论过,特别是在@julio.alegria中-我很乐意向您展示我正在处理的文件。这里给出的代码将帮助我完成大约10%的工作。从前,即使你是一个学习者,即使你需要帮助。请不要评论,如果你不能建设性或帮助。