相关疑难解决方法(0)

如何从集合中检索元素而不删除它?

假设如下:

>>> s = set([1, 2, 3])
Run Code Online (Sandbox Code Playgroud)

如何获得的值(任意值)出来s而不做s.pop()?我想把这个项留在集合中,直到我确定我可以删除它 - 我只能在异步调用另一个主机后才能确定.

又快又脏:

>>> elem = s.pop()
>>> s.add(elem)
Run Code Online (Sandbox Code Playgroud)

但是你知道更好的方法吗?理想情况下在恒定的时间.

python set

381
推荐指数
10
解决办法
37万
查看次数

如何使用理解减少dict值中的集合?

我有

x = {'a':set([1]) , 'b':set([2]), 'c':set([3]) }
Run Code Online (Sandbox Code Playgroud)

保证集合中只有一个元素.我需要将其转换为

{'a': 1, 'c': 3, 'b': 2}
Run Code Online (Sandbox Code Playgroud)

以下作品:

x1 = {k:x[k].pop() for k in x.keys()}  OR
x1 = {k:next(iter(x[k])) for k in x.keys()}
Run Code Online (Sandbox Code Playgroud)

但我不喜欢它,因为pop()这里正在修改原始集合.我需要帮助.

  • 如何 在理解中使用此处提到的拆包.
  • 有什么办法,我可以用functools.reduce它.
  • 什么可以是更好或Pythonic的方式来做这个整体?

python dictionary python-2.7 functools iterable-unpacking

2
推荐指数
1
解决办法
234
查看次数

如何获得套装中的物品

有没有办法“获取”集合中唯一的项目而无需先将其转换为列表?

s = set([u'http://imdb.com/title/tt0118583/'])
first_item = list(s)[0]
# u'http://imdb.com/title/tt0118583/'
Run Code Online (Sandbox Code Playgroud)

python

0
推荐指数
1
解决办法
7447
查看次数