的Python:制作一个集字典值
我想,我传递到在正在创建的设置功能的现有的字典中创建值的设置的Python:制作一个集字典值
举个例子:
def function(dictionary):
说我的字典里是这样的:{'1': 'Monday', '2': 'Tuesday', '3': 'Monday'}
我要的是一组只包含我的字典里的独特价值的元素,像这样:
{'Monday', 'Tuesday'}
想法?
这将是:
set(my_dict.values())
这两个python3与python2工作。下面的方法将是蟒蛇2稍微更高效:
set(my_dict.itervalues())
是另一种独特的:
>>> my_dict = {'1': 'Monday', '3': 'Monday', '2': 'Tuesday'}
>>> {y:x for x,y in my_dict.iteritems()}.keys()
['Tuesday', 'Monday']
>>>
哪一个不是'set' ... – 2014-12-01 23:56:20
他为什么需要设定只是为了区分价值观? – 2014-12-01 23:57:03
取决于你如何解释:*我想要的是一组* ...然后是一个'set'文字的例子... – 2014-12-01 23:57:38
一个次要的事情:在2.7,'viewvalues'可能比'itervalues'更快。它也与3.x行为更一致。但是当然你的代码在2.6和更早版本中不起作用。 – abarnert 2014-12-01 23:57:12
@abarnert你觉得'set(my_dict [k] for k in my_dict)'......认为应该在任何地方工作... – 2014-12-02 00:02:29
@JonClements:Nick Coghlan有一篇不错的博客文章,在2.x和3.x中编写需要高效的代码的方法是编写一个包装器(或者在现有项目中找到一个,比如'six'或'modernize'),然后使用它。是的,这是顶级功能而不是方法,但谁在乎?所以,'set(viewvalues(my_dict))'。 – abarnert 2014-12-02 00:44:50