【发布时间】:2018-01-03 19:53:36
【问题描述】:
这里有一些测试:
输入:"zero nine five two"
输出:"four"
输入:"four six two three"
输出:"three"
这是我的代码,它一直有效,直到我需要按值反向查找键的最后一步,我不知道该怎么做。有什么建议吗?
def average_string(s):
num_dic = {'zero': 0, 'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5,
'six': 6, 'seven': 7, 'eight': 8, 'nine': 9}
str_split = s.split()
int_values = []
for key, val in num_dic.items():
if key in str_split:
int_values.append(val)
int_avg = int(sum(int_values) / len(int_values))
return int_avg
【问题讨论】:
-
您也可以使用以下代码计算平均值:
int(sum([num_dic[s] for s in str_split]) / len(str_split)) -
你有没有期望一个数字的单词被输入你的函数两次? l例如:
"two zero nine five two" -
要执行查找,而不是尝试反转整个字典,我会使用 items() 或 iteritems() 回答 here。也就是说,除非切换键值有未来价值。
标签: python dictionary iteration key-value