我有一个函数erasing_pairs()
,它应该取一个字符串并返回一个列表r,其中所有对都被删除。
以下是该功能的预期结果:
def erasing_pairs(r):
without_pairs=[]
return without_pairs
基本上,我解释了期望的结果。这是我的一次尝试,但无济于事:
def erasing_pairs(r):
without_pairs=[]
without_pairs = [x for x in r if r.count((r[x][0])) == 1]
return without_pairs
答案 0 :(得分:0)
为方便起见,我将对您的数据进行一处小改动。使用10♠
而不是T♠
,这意味着您可以通过查看第一个字符来比较值。
先排序。这使得所有潜在的对彼此相邻,以便快速移除:
l.sort()
l.append([None]) # This helps check at the end of the list,
# while avoiding accidentally reading beyond the end
# of the list.
然后成对浏览列表,将所有未配对的项目添加到without_pairs
。
without_pairs = []
i = 1
while i < len(r):
if r[i-1][0] != r[i][0]:
without_pairs.append(r[i-1])
i += 1
else:
i += 2
return without_pairs