[英]Enumerate list and print the index and selected values of dictionary
我有以下示例代码:
contact_book = []
contact = {'Name:': 'Foo', 'Surname:': 'Bars', 'Adress:': 'Foostreet, 3',
'Number:': '123456'}
contact2 = {'Name:': 'Boo', 'Surname:': 'Bark', 'Adress:': 'Boostreet, 31',
'Number:': '6554321'}
contact3 = {'Name:': 'Coo', 'Surname:': 'Barf', 'Adress:': 'Coostreet, 32',
'Number:': '999999'}
contact_book.append(contact)
contact_book.append(contact2)
contact_book.append(contact3)
print(list(enumerate(contact_book)))
输出为:
[(0, {'Name:': 'Foo', 'Surname:': 'Bars', 'Adress:': 'Foostreet, 3', 'Number:': '123456'}), (1, {'Name:': 'Boo', 'Surname:': 'Bark', 'Adress:': 'Boostreet, 31', 'Number:': '6554321'}), (2, {'Name:': 'Coo', 'Surname:': 'Barf', 'Adress:': 'Coostreet, 32', 'Number:': '999999'})]
我只想输出联系人的索引位置,然后输出键'Name'
和'Surname'
。
[(0, {'Name:': 'Foo', 'Surname:': 'Bars',}), (1, {'Name:': 'Boo', 'Surname:': 'Bark'}), (2, {'Name:': 'Coo', 'Surname:': 'Barf'})]
我如何仅访问Name
和Surname
值以及联系人的索引位置? 我尝试使用列表枚举进行尝试,但是我也对其他方法持开放态度。
您可以在列表推导中构建仅包含所需键的字典,使用enumerate
生成在推导中的相应索引,如下所示:
keys = ('Name', 'Surname')
lst = [(i, {k: d[k] for k in keys}) for i, d in enumerate(contact_book)]
可以遍历每个联系人并获取值,如下所示:
outlist = []
counter =0
for onedict in contact_book:
oneitem = []
oneitem.append(counter)
oneitem.append( {"Name:":contact["Name:"], "Surname:":contact["Surname:"]} )
outlist.append(oneitem)
counter += 1
print(outlist)
输出:
[[0, {'Surname:': 'Bars', 'Name:': 'Foo'}], [1, {'Surname:': 'Bars', 'Name:': 'Foo'}], [2, {'Surname:': 'Bars', 'Name:': 'Foo'}]]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.