如何从列表中删除相似值并打印剩余值

2024-04-20 04:31:36 发布

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

list =[('1', '5'), ('3', '5'), ('4', '5'), ('5', '1'), ('5', '3'), ('5', '4')]

上面是一个生成的列表,现在我只想为(1,5)写(5,1),并且(5,1)与其他值太相同。你知道吗

期望输出

list = [('5', '1'), ('5', '3'), ('5', '4')]

Tags: 列表list
3条回答
l = [('1', '5'), ('3', '5'), ('4', '5'), ('5', '1'), ('5', '3'), ('5', '4')]

s=set()
for e in l:
  if e[0] >= e[1]:
    s.add(e)
  else:
    s.add((e[1], e[0]))

l = list(s)

注意:它不保留顺序。如果这很重要:

s=set(); l2 = []
for e in l:
  if e[0] < e[1]:
    e = (e[1], e[0])
  if not e in s:
    s.add(e)
    l2.append(e)
li =[('1', '5'), ('3', '5'), ('4', '5'), ('5', '1'), ('5', '3'), ('5', '4')]

gen = ((a,b) if a>b else (b,a) for a,b in li)
lu = []
[lu.append(y) for y in gen if y not in lu]

print lu

如果该项的反面不在列表中,或者该项大于其反面,则将其添加到新列表中。你知道吗

newlist = []
for item in oldlist:
    rev = item[::-1]
    if (not (rev in oldlist)) or (item > rev)
        newlist.append(item)

相关问题 更多 >