2024-04-26 22:52:13 发布
网友
我有一本这样的字典
dic={10:(1,4),20:(2,4),30:(3,4)}
如何在不使用for循环的情况下使用dic.values()获得{}作为输出。在
for
dic.values()
答:你不能。你得查字典:
for v in d.values(): print v[0]
或者使用列表理解:
此筛选方法是您能找到的最佳方法:)
这是有效的:
>>> dic={10:(1,4),20:(2,4),30:(3,4)} >>> [x[0] for x in dic.values()] [1, 2, 3] >>> # Or if you want that as a tuple >>> tuple(x[0] for x in dic.values()) (1, 2, 3) >>> # Or a string >>> ",".join([str(x[0]) for x in dic.values()]) '1,2,3' >>>
不过,你应该记住,字典的顺序是不能保证的。也就是说,键/值对的顺序并不总是与放入它们的顺序相同。在
要按您想要的顺序得到无序的结果,您应该查看^{}。在
如果你看什么dic.值()产生:
>>> dic={10:(1,4),20:(2,4),30:(3,4)} >>> dic.values() [(1, 4), (2, 4), (3, 4)]
显然,您需要每个元组的第一个元素。在
您可以使用zip在不循环1的情况下获得它。在
正如评论中指出的,更有效的解决方案是:
>>> from itertools import izip >>> next(izip(*dic.itervalues())) (1, 2, 3)
然后,您不必一直创建多个列表来获取第一个元素。在
当然,顺序取决于驾驶员信息中心(dic)中按键的顺序。在
1在我看来,“没有循环”是一个愚蠢的区别。每个解决方案都有一个显式或隐式循环。。。在
答:你不能。你得查字典:
或者使用列表理解:
^{pr2}$此筛选方法是您能找到的最佳方法:)
这是有效的:
不过,你应该记住,字典的顺序是不能保证的。也就是说,键/值对的顺序并不总是与放入它们的顺序相同。在
要按您想要的顺序得到无序的结果,您应该查看^{} 。在
如果你看什么dic.值()产生:
显然,您需要每个元组的第一个元素。在
您可以使用zip在不循环1的情况下获得它。在
^{pr2}$正如评论中指出的,更有效的解决方案是:
然后,您不必一直创建多个列表来获取第一个元素。在
当然,顺序取决于驾驶员信息中心(dic)中按键的顺序。在
1在我看来,“没有循环”是一个愚蠢的区别。每个解决方案都有一个显式或隐式循环。。。在
相关问题 更多 >
编程相关推荐