如何在python中从一个列表中分离所有相等的对

2024-07-08 16:08:58 发布

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

我正在尝试编写一个python程序来查找列表中所有相等的对。因此,如果列表中有一个元素的单个重复,它将被添加到列表中。你知道吗

[2,2,2,2,2]将变成[2,2]

[8,8,8,2]将变成[8]

[8,16,16,8]将变成[8,16]

[2,0,2,4]将变成[2]

[0,0,2,2]将变成[0,2]

到目前为止,我已经尝试嵌套循环。你知道吗

def pairfinder(newlist):
pairlist = []
for idx in range(len(newlist)):
    for jdx in range(idx+1,len(newlist)):
        if newlist[idx] == newlist[jdx]:
            pairlist.append(newlist[idx])
            break
return pairlist

这在某些情况下给了我正确的答案。。但不是全部

抱歉说得不够清楚。你知道吗


Tags: in程序元素列表forlenifdef
1条回答
网友
1楼 · 发布于 2024-07-08 16:08:58
print [a for a,b in zip(my_list[::2],my_list[1::2]) if a == b]

您可能需要先对my_list排序。。。你知道吗

my_list = sorted(my_list)
print [a for a,b in zip(my_list[::2],my_list[1::2]) if a == b]

我一点也不确定这能解决你的问题。你知道吗

def do_this_weird_thing(a_list):
    from itertools import groupby
    for grp,item in groupby(sorted(a_list)):
        item = list(item)
        yield [grp] * (len(item)//2)

from itertools import chain
print list(chain.from_iterable(do_this_weird_thing([2,0,2,4])))

相关问题 更多 >

    热门问题