use*_*620 4 python dictionary compare
我正在寻找一种更有效的方法来比较python dict的所有元素.
这是我正在做的psuedocode:
for key1 in dict:
for key2 in dict:
if not key1 == key2:
compare(key1,key2)
Run Code Online (Sandbox Code Playgroud)
如果dict的长度是N,那么这是N ^ 2 - N.有没有办法不重复第二个循环中的元素?对于列表,这将是:
N = len(list)
for i in range(1:(N-1)):
for j in range((i+1):N):
compare(list[i], list[j])
Run Code Online (Sandbox Code Playgroud)
无论如何为dict案件这样做?
也许是这样的
>>> import itertools
>>>
>>> d = {1:2, 2:3, 3:4}
>>>
>>> for k0, k1 in itertools.combinations(d,2):
... print 'compare', k0, k1
...
compare 1 2
compare 1 3
compare 2 3
Run Code Online (Sandbox Code Playgroud)
如果你不关心你是否得到(1,2)或(2,1).[当然,sorted(d)如果您想要特定订单,您可以迭代或某些变体,或者如果重要,则可以比较(k0,k1)和(k1,k0).
[顺便说一句:不要打电话给你的清单或你的字谜 - 这会破坏内置的,而且它们很方便.
| 归档时间: |
|
| 查看次数: |
264 次 |
| 最近记录: |