我想从Python中的列表中删除类似的元素,并在不使用set()的情况下在该列表中打印唯一元素。但是我的代码没有做同样的事情。请帮帮我
我的代码
T = int(raw_input())
a=[]
for i in range(0,T):
a.append(raw_input())
for i in range(len(a)):
for j in range(i+1, len(a)):
if a[i]==a[j]:
del a[j]
print a
答案 0 :(得分:4)
a = [1, 2, 3, 4, 3, 5, 2]
a = [x for i, x in enumerate(a) if x not in a[:i]]
print(a) # [1, 2, 3, 4, 5]
创建新集合通常更好,而不是从旧集合中删除。在这种情况下,我们包括原始列表中尚未出现的那些元素。
答案 1 :(得分:2)
如果您不必删除,可以使用:
yourList = [12, 121, 51, 132, 12, 44, 44, 51]
newList = [v for i,v in enumerate(yourList) if yourList.index(v) == i]
print newList
祝你好运!
答案 2 :(得分:1)
使用删除:
T = int(raw_input())
a=[]
for i in range(0,T):
a.append(raw_input())
for i in range(len(a)):
for j in range(i+1, len(a)):
if a[i]==a[j]:
a[j]=''
while '' in a:
a.remove('')
print a
尝试我的解决方案,而不是删除你可以制作的元素并清空字符串而不是删除它,因为删除会导致列表索引超出范围