如何在字典中只显示几个值
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
【讨论】:
以上是关于如何在字典中只显示几个值的主要内容,如果未能解决你的问题,请参考以下文章