Одна строка для if в python - почему результат всегда является последним элементом в списке? - PullRequest
3 голосов
/ 07 ноября 2019

У меня есть список (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), я смогу получить индекс.

Ответы [ 2 ]

1 голос
/ 07 ноября 2019

Это должно делать то, что вы хотите:

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))
0 голосов
/ 08 ноября 2019

Я заменил:

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

на:

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