您好,我已经通过 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]]]
