簡體   English   中英

python在for循環后打印字典鍵值對的單個實例

[英]python print single instance of dictionary key value pairs after for loop

我正在使用python 2.7遍歷兩個字典以在它們之間交換key:value對。 我正在使用final for循環來恢復具有“ AND”運算符的鍵的平均成本。

list1 = {'dish1': ['apples', 'AND', 'pears'], 'dish2': ['oranges', 'AND', 'cherries'], 'dish3': ['carrots', 'OR', 'tomatoes']}
list2 = {'apples': '10', 'pears': '2', 'oranges': '5', 'cherries': '6', 'carrots': '5', 'tomatoes': '4'}

AND_List = {k:v for k, v in list1.items() if 'AND' in v}
DictList = {}
avgDict = {}

for k, v in AND_List.items():
  for j, i in list2.items():
    if j in v:
      DictList.setdefault(k, []).append(float(i))
    for k, i in DictList.iteritems():
      avgDict[k] = sum(i)/float(len(i))
    print avgDict

>>{'dish1': 6.0}
>>{'dish1': 6.0, 'dish2': 5.5}

我希望最后一個for循環之后的print語句僅打印盤1和盤2的一個實例。 似乎是順序打印每個有條件恢復的key:value。 我將不勝感激任何建議。 謝謝!

我認為您的縮進不正確。 看看這是您在尋找什么:

for k, v in AND_List.items():
    for j, i in list2.items():
        if j in v:
            DictList.setdefault(k, []).append(float(i))
    for k, i in DictList.iteritems():
        avgDict[k] = sum(i)/float(len(i))

print avgDict

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM