如何从Python的字典中提取特定键的列表?



我有一个字典列表,看起来像这样:

lst = [{'id': 'ID1', 'Name':'Name1', 'Surname':'Surname1'},
{'id': 'ID2', 'Name':'Name2', 'Surname':'Surname2'},
{'id': 'ID3', 'Name':'Name3', 'Surname':'Surname3'}]

我希望我的输出看起来像这样:

idnumber: ID1 ; Name: Name1 ; Surname: Surname1
idnumber: ID2 ; Name: Name2 ; Surname: Surname2
idnumber: ID3 ; Name: Name3 ; Surname: Surname3

作为我的起点,至少从id部分开始,我写:

for l in lst:
for key,value in l.items():
if l.keys() == "id":
print("idnumber: ", l.values())

不幸的是,它对我不起作用:(任何建议都会有所帮助。

方法如下:

lst = [{'id': 'ID1', 'Name':'Name1', 'Surname':'Surname1'},
{'id': 'ID2', 'Name':'Name2', 'Surname':'Surname2'},
{'id': 'ID3', 'Name':'Name3', 'Surname':'Surname3'}]

keys = ['id', 'Name', 'Surname']
aliases = {'id': 'idnumber'}
for d in lst:
for i, k in enumerate(keys):
print(f'{aliases.get(k, k)}: {d[k]}',
end=' ; ' if i+1<len(keys) else 'n')

输出:

idnumber: ID1 ; Name: Name1 ; Surname: Surname1
idnumber: ID2 ; Name: Name2 ; Surname: Surname2
idnumber: ID3 ; Name: Name3 ; Surname: Surname3

工作原理:

  • keys保存顺序
  • 中要使用的键的列表
  • aliases保存要打印的密钥的名称(如果没有别名,aliases.get(k, k)搜索别名并使用密钥名称)
  • enumerate允许识别最后一个键以打印换行符而不是;分隔符

遍历字典列表并格式化每个键值对以最终将它们连接在一起。

lst = [{'id': 'ID1', 'Name':'Name1', 'Surname':'Surname1'},
{'id': 'ID2', 'Name':'Name2', 'Surname':'Surname2'},
{'id': 'ID3', 'Name':'Name3', 'Surname':'Surname3'}]
for d in lst:
print('; '.join(f"{k}: {v}" for k, v in d.items()))

相关内容

  • 没有找到相关文章