我们如何访问以列表形式存在的字典中的值? [复制]

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 之一,然后取平均值。

【讨论】:

以上是关于我们如何访问以列表形式存在的字典中的值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何将嵌套字典列表与它们的值中的公共键相加? [复制]

dict,列表方法

python:字典嵌套列表

列表中嵌套字典,根据字典的值排序

pandas:如何将字典转换为转置数据框? [复制]

python实验将文件中的信息以字典的形式存储在列表里。