def count1(x,s):
def loop(x,s,count):
while s!=[]:
if x == s[0]:
return loop(x,s[1:],count + 1)
else:
return loop(x,s[1:],count)
if s==[]:
return count
return loop(x,s,0)
def remove_all1(x,s):
def loop(x,s,ss):
while s!=[]:
if x == s[0]:
return loop(x,s[2:],ss+[s[1]])
else:
return loop(x,s[1:],ss+[s[0]])
return ss
return loop(x,s,[])
def union0(xs,ys):
ss = xs + ys
for i in ss:
#print(i)
if count1(i,ss) > 1:
return [ss[i]] + remove_all1(i,ss)
return ss
print(union0([1,7,5,6],[9,9,0,6,4]))
这将打印出[0, 1, 7, 5, 9, 9, 0, 4],如何打印[0,1,7,5,9,0,4]?为了避免冗余,我知道可以使用set()方法,但只想知道如何使用count0()和remove_all1()方法。谢谢。
list(set(itertools.chain(*lists)))
完全等价,只是它保留了每个项的出现次数,然后将计数丢弃。此外,union
函数的最后五行相当于return counts.keys()
。 - jbg