如何在字典中只显示几个值

Posted

技术标签:

【中文标题】如何在字典中只显示几个值【英文标题】:How to Display only couple of values in a dictionary 【发布时间】:2022-01-15 21:41:38 【问题描述】:

我有一个包含 2 个键和 1 个值的字典。我只想打印字典中的键和前 3 个值。字典示例:

newdict=('Brain Danielson', 'Canada'): 7887, 
('Kofi Kingston', 'Gana'): 7718, 
('Drew McIntryre', 'England'): 8105,
('John Cena','USA'):9078

输出应该是:

First: Bryan Danielson, Canada
Second: Kofi Kingston, Gana
Third: Drew McIntryre, England

【问题讨论】:

这里只是为了调整词汇,你所拥有的是一个包含复合键(元组)和数值的字典。您想打印前 3 个 并带有相应的提示。 【参考方案1】:

这是一个没有 zip 的解决方案。

您可以将 dict 临时转换为列表并读取您需要的数据或使用小型 for 循环将其通过管道传输到您想要的位置。:

newdict = 
    ('Brain Danielson', 'Canada'): 7887,
    ('Kofi Kingston', 'Gana'): 7718,
    ('Drew McIntryre', 'England'): 8105,
    ('John Cena', 'USA'): 9078

data = list(newdict.keys())

for d in (data)[0:3]:
    print(d)

【讨论】:

【参考方案2】:

对于第 n 个,输入 zip(('First:','Second:','Third:'),newdict): print(nth,*key)

【讨论】:

为什么要重复 20 分钟前发布的答案?【参考方案3】:

您可以通过将 3 个提示与字典的键结合起来,使用 zip() 在一个简单的循环中做到这一点

for nth,key in zip(('First:','Second:','Third:'),newdict):
    print(nth,*key)

输出:

First: Brain Danielson Canada
Second: Kofi Kingston Gana
Third: Drew McIntryre England

zip() 只会遍历最短的源(在这种情况下是您的提示列表),因此不会处理第 4 个和后续的字典键。

如果您需要分配给变量的键,您可以在字典上使用迭代器并使用 next() 函数获取每个键:

first,second,third = map(next,[iter(newdict)]*3)
print("First:",*first)
print("Second:",*second)
print("Third:",*third) 

还有一个更简单的表示法(但它效率低,因为它会遍历整个字典来获取前 3 个键):

first,second,third,*_ = newdict

【讨论】:

以上是关于如何在字典中只显示几个值的主要内容,如果未能解决你的问题,请参考以下文章

在 phpmyadmin 中仅设置几个值作为域枚举

如何在 JavaScript 中只显示前两个对象?

如何在android中只显示状态栏

如何在传单控件搜索结果中显示2个值(工具提示)

如何在 iOS 中只显示英文键盘?

如何在 Django 中只显示表单中的一个字段