在Python中列出一个列表中的字典名称 |
您所在的位置:网站首页 › python中如何修改列表中元素的名称和属性名称 › 在Python中列出一个列表中的字典名称 |
我有一个列表,包含三个字典,如下所示: 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 |