我从下面的代码得到的结果是错误的:

[
'199|4|11|GDSPV',
'199|4|11|GDSPV|199|16|82|GDSPV',
'199|4|11|GDSPV|199|16|82|GDSPV|205|16|82|GDSPV'
]

我希望结果与fr列表相同,但电子邮件替换为dictionary d的值。我完全不明白这为什么不能按预期工作?
fr = [
'[email protected]|4|11|GDSPV',
'[email protected]|16|82|GDSPV',
'[email protected]|16|82|GDSPV'
]

d= {
'[email protected]': '199',
'[email protected]': '200',
'[email protected]': '205'
}


col_list=[]
line_list=[]

for line in fr:
    columns = line.split("|")
    for col in columns:
        if col==columns[0]:
            col_list.append(d[col])
            continue
        col_list.append(col)
        #i = i + 1
    line_list.append("|".join(col_list))
print line_list

最佳答案

试试这个:

line_list=[]
for line in fr:
    cols = line.split('|')
    key = cols[0]
    cols[0]=d[key]
    line_list.append('|'.join(cols))

print line_list

关于python - Python字典和字典查找过程中的循环困惑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13577305/

10-13 00:00