python在for循环之后打印字典键值对的单个实例

2024-09-29 03:27:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Python2.7遍历两个字典进行交换键:值对他们之间。我使用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语句只打印dish1和dish2的一个实例。它似乎是按顺序打印每个有条件恢复的关键:价值。如果有什么建议,我将不胜感激。谢谢!在


Tags: andinforitemstomatoesdictlistlist1oranges
1条回答
网友
1楼 · 发布于 2024-09-29 03:27:56

我认为你的缩进不正确。看看这是否是你想要的:

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

相关问题 更多 >