gpt4 book ai didi

python - 使用python遍历多个列表

转载 作者:太空宇宙 更新时间:2023-11-04 08:38:03 26 4
gpt4 key购买 nike

您好,我已经通过 Stackoverflow 进行了搜索,并且一直在努力应对以下与列表相关的挑战,但作为 Python 新手,我感到很困惑。

我目前有 2 个测试数据列表,一个包含用户信息(新旧用户 ID 后跟名称数据),另一个包含用户和页码的列表列表 (eeIDlist)。我想检查与特定用户关联的页码是否与新 ID 或旧 ID 匹配,如果任一 ID 匹配,则将页码追加回原始列表。

我已经将列表匹配并 append 到 CompanyName 列表,但该列表似乎呈指数级增长并且代表所有用户页面数据,而不仅仅是与个人关联的页码。

热烈欢迎建议!

我的代码如下:

pagenumbers=[]

for i in CompanyNameList:

for ee in i:
for eeid in eeIDlist:
try:
if (str(eeid[1]) in ee):
pagenumbers.extend([eeid[0]])
i.append(pagenumbers)
i.append([eeid[0]])
except ValueError:
print "Not a valid number"

print i

我的源数据如下:

CompanyNameList:

[['144128', '40013', 'John', 'Dodge', 'F', 'DODGEJ'],['144130', '40023', 'John', 'Apple', 'Z', 'APPLEJ'],['144131', '40050', 'Gerald', 'Key', 'M', 'KEYG'],['144138', '40074', 'Saul', 'VanWinkle', 'VANWINKLE']]

用户 ID 和页码eeID列表:

[[144128,1],[144138,12],[144130,6],[144131,9],[40013,153],[40074,310],[40023, 210], 
[40050,250]]

所需的输出列表:

[['144128', '40013', 'John', 'Dodge', 'F', 'DODGEJ',[1,153]],
['144130', '40023', 'John', 'Apple', 'Z', 'APPLEJ',[6,210]],
['144131', '40050', 'Gerald', 'Key', 'M', 'KEYG',[9,250]],
['144138', '40074', 'Saul', 'VanWinkle', 'VANWINKLE',[12,310]]]

最佳答案

您的代码中有一些错误。

  • 您不需要循环for ee in i。例如,您想检查 '123214' in ['144128', '40013', 'John', 'Dodge', 'F', 'DODGEJ']如果 '144128''40013''John' 等中的 123214 则不是。

  • 此外,您不需要 i.append([eeid[0]]),因为您正在处理 pagenumbers,这就足够了;您不希望结果中出现重复项。

  • 此外,pagenumbers 应该 append 在 for 循环之外。否则,您将获得多个 append 列表。

以下是修复代码错误的代码:

CompanyNameList = [
['144128', '40013', 'John', 'Dodge', 'F', 'DODGEJ'],
['144130', '40023', 'John', 'Apple', 'Z', 'APPLEJ'],
['144131', '40050', 'Gerald', 'Key', 'M', 'KEYG'],
['144138', '40074', 'Saul', 'VanWinkle', 'VANWINKLE']]

eeIDlist = [[144128,1],
[144138,12],
[144130,6],
[144131,9],
[40013,153],
[40074,310],
[40023, 210],
[40050,250]]

pagenumbers=[]

for i in CompanyNameList:
for eeid in eeIDlist:
try:
# eeid[0] not eeid[1]
if (str(eeid[0]) in i):
# eeid[1] not eeid[0]
pagenumbers.extend([eeid[1]])
except ValueError:
print ("Not a valid number")
i.append(pagenumbers)
pagenumbers = []

print CompanyNameList

输出:

[['144128', '40013', 'John', 'Dodge', 'F', 'DODGEJ', [1, 153]], 
['144130', '40023', 'John', 'Apple', 'Z', 'APPLEJ', [6, 210]],
['144131', '40050', 'Gerald', 'Key', 'M', 'KEYG', [9, 250]],
['144138', '40074', 'Saul', 'VanWinkle', 'VANWINKLE', [12, 310]]]

关于python - 使用python遍历多个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47257333/

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