如何获取Python列表中包含特定键的字典元素对应的值?
嘿,这个需求其实很好实现,我给你分享几种实用的方法,你可以根据自己的习惯选择:
方法一:列表推导式(最简洁高效)
这是Python处理这类场景的首选方式,一行代码就能搞定:
testlist = [{'p:Name':'ABC','p:Age':'14'}, {'Major':'Science','Job':'Scientist'}, {'p:Name':'XYZ','p:Age':'15'}] age_values = [item['p:Age'] for item in testlist if 'p:Age' in item] print(age_values) # 输出结果: ['14', '15']
简单解释下:我们遍历testlist里的每一个字典元素,先判断当前字典是否包含p:Age这个键(用'p:Age' in item做检查),如果存在就取出对应的值,最后所有符合条件的值会自动组成一个新列表。
方法二:普通for循环(更易理解)
如果你是刚接触Python,想更清晰地看到每一步的执行过程,用传统的循环写法会更直观:
testlist = [{'p:Name':'ABC','p:Age':'14'}, {'Major':'Science','Job':'Scientist'}, {'p:Name':'XYZ','p:Age':'15'}] age_values = [] for item in testlist: # 检查当前字典是否存在目标键 if 'p:Age' in item: age_values.append(item['p:Age']) print(age_values) # 输出结果: ['14', '15']
思路很简单:先创建一个空列表用来存结果,然后逐个遍历原列表里的字典,每遇到包含p:Age的字典,就把对应的值添加到结果列表里,最后就能得到你想要的所有年龄值。
额外小提示:处理键不存在的容错情况
如果你的列表里可能有不确定是否包含目标键的字典,也可以用dict.get()方法来避免报错(不过这种情况需要过滤掉None值):
age_values = [item.get('p:Age') for item in testlist if item.get('p:Age') is not None]
不过其实第一种方法里的if 'p:Age' in item判断已经足够高效和直接,所以优先推荐前两种写法哦。
内容的提问来源于stack exchange,提问作者Memo
相关产品推荐
相关产品推荐

