gpt4 book ai didi

python - 将元组附加到元组列表时出现问题

转载 作者:太空宇宙 更新时间:2023-11-04 09:57:37 25 4
gpt4 key购买 nike

我有两个列表,其中包含文本文件中特定提要的开始和结束行号:startPosOfFeeds = [1, 35]endPosOfFeeds = [34, 56]我想将这两个列表转换成这样的元组列表:list_of_tuples = [(1,34), (35, 56)]

假设只有 len(startPosOfFeeds) == len(endPosOfFeeds)

我才会执行上述操作

我的代码:

numOfFeeds = len(startPosOfFeeds)
print(numOfFeeds)
print(startPosOfFeeds)
print(endPosOfFeeds)

for i in range(numOfFeeds):
list_of_tuples = []
print(i)
print(str(startPosOfFeeds[i])+'......'+str(endPosOfFeeds[i]))
list_of_tuples.append(startPosOfFeeds[i],endPosOfFeeds[i])
print(list_of_tuples)

不正确的输出:

2
[1, 35]
[34, 56]
0
1......34
1
35......56
[(35, 56)]

我不确定为什么列表 list_of_tuples 只包含最后附加的值。

最佳答案

每次迭代都创建一个空列表:

for i in range(numOfFeeds):
list_of_tuples = [] # <-- this creates the empty list in each iteration
...
list_of_tuples.append((startPosOfFeeds[i],endPosOfFeeds[i]))

解决方案很简单:将 list_of_tuples = [] 放在循环前面:

list_of_tuples = []
for i in range(numOfFeeds):
...
list_of_tuples.append((startPosOfFeeds[i],endPosOfFeeds[i]))

请注意,您也可以使用 zip 和列表理解代替:

list_of_tuples = [(startpos, endpos) for startpos, endpos in zip(startPosOfFeeds, endPosOfFeeds)]

或者只是将 zip 转换为 list:

list_of_tuples = list(zip(startPosOfFeeds, endPosOfFeeds))

关于python - 将元组附加到元组列表时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45153229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com