繁体   English   中英

枚举列表并打印索引和字典的选定值

[英]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'})]

我如何仅访问NameSurname值以及联系人的索引位置? 我尝试使用列表枚举进行尝试,但是我也对其他方法持开放态度。

您可以在列表推导中构建仅包含所需键的字典,使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM