我们如何访问以列表形式存在的字典中的值? [复制]
Posted
技术标签:
【中文标题】我们如何访问以列表形式存在的字典中的值? [复制]【英文标题】:How could we access the value in a dictionary that is present as a list? [duplicate] 【发布时间】:2020-11-04 15:13:17 【问题描述】:marks='A':[50,70,90],'B':[60,80,70],'C':[70,80,90]
在上面的字典中,我需要访问 B 的值并找到列表的平均值 (i:e:(60+80+70)/3)。我如何访问该值并找到平均值?我尝试的是......
marks='A':[50,70,90],'B':[60,80,70],'C':[70,80,90]
get_name=input()
for i in marks:
if i==get_name:
for j in i:
add += marks[j]
print(add/3)
它显示错误。如何访问 list[60,80,70] 的字典中关于键 'B' 的值。
【问题讨论】:
使用marks.items()
。但可能marks[get_name]
会更好。
marks.get(get_name)
?
for j in marks[i]
。另外,你需要将变量add
初始化为0。而且,j
是标志,所以你需要add += j
。
【参考方案1】:
这是一个单线 -
avg = sum(marks['B'])/3
【讨论】:
len(marks['B'])
?
是的,可能更好,虽然他的例子总是有 3 个数字很难分辨
所以如果它有n个例子那么代码可以是sum(marks['B'])/len(marks['B'])
【参考方案2】:
sum()
将汇总相应列表中的值,您只需将其除以列表的大小即可。
input = 'A'
average = sum(marks[input])/len(marks[input])
【讨论】:
【参考方案3】:marks='A':[50,70,90],'B':[60,80,70],'C':[70,80,90]
对于上述代码,marks[get_name]
应该打印出列表[60,80,70]
,然后可以通过该列表取平均值。
要遍历您将使用的字典,for key, val in marks.items()
并检查提供的用户是否将 equals
输入到 key
之一,然后取平均值。
【讨论】:
以上是关于我们如何访问以列表形式存在的字典中的值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章