如何遍历Python字典列表,无需person['key']形式输出指定格式内容?
解决动态遍历字典键生成指定格式输出的问题
嘿,这个需求很好实现!你不想逐个硬编码person['id']、person['name']这类键名,那我们可以利用字典的键集合动态获取对应的值,完全不用写死每个键。
首先观察你的数据结构:所有字典的键都是id、name、age且顺序一致,那我们可以先从第一个字典里提取出键的顺序,再遍历每个人的字典,按这个键顺序取出值并拼接成你要的格式。
直接上代码:
people = [ {'id': 1, 'name': 'Ada', 'age': 55}, {'id': 2, 'name': 'Bart', 'age': 46}, {'id': 3, 'name': 'Chloe', 'age': 37}, {'id': 4, 'name': 'Dylan', 'age': 28} ] # 从第一个字典获取键的顺序(Python 3.7+字典默认保持插入顺序) field_order = people[0].keys() # 遍历每个person,按键顺序拼接值并输出 for person in people: print(', '.join(str(person[key]) for key in field_order))
运行这段代码,就能得到你想要的输出:
1, Ada, 55
2, Bart, 46
3, Chloe, 37
4, Dylan, 28
小补充:
- 这里用
people[0].keys()获取键的顺序,前提是所有字典的键结构和顺序完全一致,这在你的数据里是成立的。如果后续有字典键顺序变化的情况,你也可以手动指定键列表(比如field_order = ['id', 'name', 'age']),但这就回到了“逐个指定键”的方式,显然当前数据统一的情况下,动态获取更符合你的需求。 - 用
str()转换值是因为id和age是整数,需要转成字符串才能用join方法拼接。
内容的提问来源于stack exchange,提问作者miccio
相关产品推荐
相关产品推荐

