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