2016-03-08 3 views
1

Моего кодаPython 3.5 итерации по списку словарей

index = 0 
for key in dataList[index]: 
    print(dataList[index][key]) 

Кажется, работает отлично подходит для печати значения ключей словаря для индекса = 0.

Но для жизни меня я могу» т выяснить, как поставить этот цикл внутри для цикла, который перебирает через неизвестное количество словарей в dataList

+0

Нет, пожалуйста, не используйте счетчики итераций, если вам абсолютно не нужно. Хотя это * решение * этой проблемы, это не самый лучший. –

ответ

1

Вы можете просто перебирать индексы в range в len из ваших list:

dataList = [{'a': 1}, {'b': 3}, {'c': 5}] 
for index in range(len(dataList)): 
    for key in dataList[index]: 
     print(dataList[index][key]) 

или вы могли бы использовать время цикла с index счетчика:

dataList = [{'a': 1}, {'b': 3}, {'c': 5}] 
index = 0 
while index < len(dataList): 
    for key in dataList[index]: 
     print(dataList[index][key]) 
    index += 1 

вы могли даже просто перебирайте элементы в списке непосредственно:

dataList = [{'a': 1}, {'b': 3}, {'c': 5}] 
for dic in dataList: 
    for key in dic: 
     print(dic[key]) 

Это может быть даже без каких-либо поисков, просто итерация значений словарях:

dataList = [{'a': 1}, {'b': 3}, {'c': 5}] 
for dic in dataList: 
    for val in dic.values(): 
     print(val) 

Или обернуть итерации внутри списка-понимания или генератора и распаковать их позже:

dataList = [{'a': 1}, {'b': 3}, {'c': 5}] 
print(*[val for dic in dataList for val in dic.values()], sep='\n') 

возможности бесконечны. Это вопрос выбора, который вы предпочитаете.

0

Вы можете легко сделать это:

for dict_item in dataList: 
    for key in dict_item: 
    print dict_item[key] 

Он будет перебирать список, и для каждого словаря в списке он будет перебирать ключи и печатать свои значения.

Смежные вопросы