python中if的一行代码-为什么结果总是列表中的最后一项



我有一个列表(colNames(,我试图读取字典中的每个关键字,并在列表中迭代以找到相应的索引,其中关键字与列表中的项目匹配

colNames = ['First_Name', 'Last_Name', 'ClientID', 'Location']
dict = {'First_Name':'Charlie', 'Last_Name':'Brown', 'ClientID':'23156', 'Location':'H3M 2V4'}
for key, value in dict.iteritems():  
[item for item in colNames if key==item]
col = colNames.index(item)
print item

无论关键如何,结果总是"位置">

为什么?我假设它会遍历列表,一旦找到与关键字匹配的项,就可以使用colNames.index(item(获取索引。

这应该可以实现您想要的:

colNames = ['First_Name', 'Last_Name', 'ClientID', 'Location']
_dict = {'First_Name':'Charlie', 'Last_Name':'Brown', 'ClientID':'23156', 'Location':'H3M 2V4'}
for key in _dict:
print(colNames.index(key))

我替换了:

[item for item in colNames if key==item]:

带有:

if key in colNames :
colNumber = colNames.index(key)

最新更新