>>> class A(object):
... def some(self):
... pass
...
>>> a=A()
>>> a.some
<bound method A.some of <__main__.A object at 0x7f0d6fb9c090>>
Run Code Online (Sandbox Code Playgroud)
IOW,我需要在仅仅移交"a.some"后才能访问"a".
def revert_dict(d):
rd = {}
for key in d:
val = d[key]
if val in rd:
rd[val].append(key)
else:
rd[val] = [key]
return rd
>>> revert_dict({'srvc3': '1', 'srvc2': '1', 'srvc1': '2'})
{'1': ['srvc3', 'srvc2'], '2': ['srvc1']}
Run Code Online (Sandbox Code Playgroud)
这显然不是简单地用键交换键:这会覆盖一些值(作为新键),这不是我所追求的.
如果不同键的2个或更多值相同,则应将键分组到列表中.
以上功能有效,但我想知道是否有更聪明/更快的方式?
>>> b=[('spam',0), ('eggs',1)]
>>> [reversed(x) for x in b]
[<reversed object at 0x7fbf07de7090>, <reversed object at 0x7fbf07de70d0>]
Run Code Online (Sandbox Code Playgroud)
游民.我希望得到一个反转元组列表!
当然,我可以这样做:
>>> [tuple(reversed(x)) for x in b]
[(0, 'spam'), (1, 'eggs')]
Run Code Online (Sandbox Code Playgroud)
但我希望通用的东西?Smth,当移交元组列表时,返回一个反转元组列表,当移交列表列表时,返回一个反转列表列表.
当然,带有isinstance()的丑陋黑客总是可以使用,但我希望避免走那条路.