[英]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.