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

One-liner for if in python - why is the result always the last item in the list?

我有一个列表 (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

无论密钥如何

,结果总是 'Location'

这是为什么?我假设它会遍历列表,一旦它找到与关键注释项目的匹配项并使用 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)