![](/img/trans.png)
[英]How to get all pairs from a list that fulfil some condition in Python
[英]How to get all seperate all equal pairs from a list in 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]
到目前為止,我已經嘗試過嵌套 for 循環。
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
這給了我在某些情況下的正確答案......但不是全部
抱歉不夠清楚。
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])))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.