在Python中列出一个列表中的字典名称

您所在的位置:网站首页 python中如何修改列表中元素的名称和属性名称 在Python中列出一个列表中的字典名称

在Python中列出一个列表中的字典名称

2024-07-17 22:04| 来源: 网络整理| 查看: 265

我有一个列表,包含三个字典,如下所示:

12345678910111213141516171819202122lloyd = { "name":"Lloyd", "homework": [90.0, 97.0, 75.0, 92.0], "quizzes": [88.0, 40.0, 94.0], "tests": [75.0, 90.0] } alice = { "name":"Alice", "homework": [100.0, 92.0, 98.0, 100.0], "quizzes": [82.0, 83.0, 91.0], "tests": [89.0, 97.0] } tyler = { "name":"Tyler", "homework": [0.0, 87.0, 75.0, 22.0], "quizzes": [0.0, 75.0, 78.0], "tests": [100.0, 100.0] } students = [lloyd, alice, tyler]

我想循环浏览列表,只打印字典的名称

123lloyd alice tyler

我不想打印字典本身的键或值。

在这方面的任何建议都是有益的。

相关讨论 如果字典的名称与属性name相同,为什么不打印它呢? 我认为这在Python中是不可能的,如果可能的话,这不是一个好的实践。你到底想做什么?这与词典无关。 请参见:stackoverflow.com/questions/1538342/…

python中的对象没有"名称",它们被绑定到变量。考虑以下代码:

12lst1 = [3, [4, 5, 6], 7] lst2 = lst1

列表的"名称"是什么(可以访问lst1或lst2)。列表第二个元素的名称是什么(只有列表存储了对子列表的引用)。

dir()函数可以为您提供名称空间中的名称列表,但这是您所能做到的最好的方法。

1for i in students:print(i['name']) 相关讨论 为什么投反对票?这是绝对正确的。 @马库斯·M&252;勒不认识朋友。 我已经重新阅读了这个问题。我认为op试图得到"handle",而不是字典的"name"元素。

在标准dict类中没有__name__或这样的attr(函数有func.func_name,我相信会有更好的实现,但我的解决方案如下:

使用一些附加属性创建一种新类型的dict。

12345678class myspecial_dict(dict):     def __init__(self,Name,**kwargs):         super(myspecial_dict,self).__init__(kwargs)         self.dictname=Name mys=myspecial_dict("lloyd",**lloyd) print mys.dictname print mys['quizzes']

打印出:

12lloyd [88.0, 40.0, 94.0]

如果你想为所有人做这件事:

123dicts    =[lloyd,alice,tyler] dictnames=["lloyd","alice","tyler"] print [myspecial_dict(x,**y).dictname for x,y in zip(dictnames,dicts) ]

这就产生了:

1['lloyd', 'alice', 'tyler']



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3