如何访问列表中字典的条目?无需循环提取所有name字段
解决方法
你原来的写法list_names[:]["name"]无效的原因是:list_names[:]只是创建了原列表的浅拷贝,结果还是一个列表,而列表没有"name"这个键——只有列表里的每个字典元素才有这个键,所以直接这么写会抛出TypeError。
无需手动写显式循环的话,有两种常用简洁写法:
1. 列表推导式
这是Python中提取这类字段最常用的方式,语法简洁直观:
names = [item["name"] for item in list_names] print(names)
输出结果:
['Jullemyth', 'Leonhard', 'Scarion', 'Jaguar', 'Cutiepie', 'Hannah Bee']
2. 使用map()函数
结合匿名函数lambda,可以把提取逻辑映射到列表的每个元素上,最后转成列表:
names = list(map(lambda x: x["name"], list_names)) print(names)
输出结果和上面一致。
这两种写法底层其实都有循环,但不需要你手动编写for...in的循环块,符合你“无需使用循环”的需求。
内容的提问来源于stack exchange,提问作者匿名
相关产品推荐
相关产品推荐

