python中的拆分集

2024-04-20 08:12:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一套字典,里面有一些键值对。我想知道最有效的方法将它们分成两半,然后对每一组应用一些处理。我想外面有一条船。。。

也就是说,如果我有字典A,B,C,D,我希望得到结果集:(A,B),(A,C),(A,D),而不是剩下的集(C,D),(B,D),(B,C)


Tags: 方法字典键值
3条回答

可能是这样的:

示例:

In [17]: from itertools import *

In [18]: lis=('a','b','c','d')

In [19]: for x in islice(combinations(lis,2),len(lis)-1):
    print x,
   ....:     
   ....:     
('a', 'b') ('a', 'c') ('a', 'd')

itertools和一行通常属于同一句话:

>>> import itertools
>>> s = ['A', 'B', 'C', 'D']
>>> i = itertools.product(s[0], s[1:])
>>> list(i)
[('A', 'B'), ('A', 'C'), ('A', 'D')]

试试这个:

l = ['a','b','c','d']
def foo(l):
    s0 = None
    for i in l:
        if s0 is None: 
            s0=i
            continue
        yield (s0,i)

for k in foo(l):
    print k

输出:

('a', 'b')
('a', 'c')
('a', 'd')

相关问题 更多 >