python - 需要删除列表中的所有重复值

标签 python arrays list

我正在尝试解决这个问题“好的数组是不包含任何相等相邻元素的数组。 给定一个长度为 N 的整数数组 A,要求你做一些操作(可能为零)来使 阵好。一种操作是删除两个相等的相邻元素并连接数组的其余部分。 答:(1、2、2、3、4) 后一操作:(1, 3, 4) "使用 python 列表,如下所示:

L=[]
n=int(input("Enter a num"))
for _ in range(n):
    x=int(input())
    L.append(x)    
print(L)
for z in range(L):
    if L[z]==L[z+1]:
        L.remove(z)
        L.remove(z+1)
print(L)

我不断收到此错误:输入 [37] 如果 L[z]==L[z+1] ^ 语法错误:语法无效 任何解决方案!`

最佳答案

最简单的解决方案是groupby 数组,并且只保留只有一项的组:

>>> A = [1, 2, 2, 3, 4]
>>> import itertools
>>> A = [i for i, g in itertools.groupby(A) if len(list(g)) == 1]
>>> A
[1, 3, 4]

关于python - 需要删除列表中的所有重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73261167/

相关文章:

python - 比较字典中的列表并获得获胜 key

c - 将指针存储到数组时哪里出错了?

arrays - 操作数组内的(TRUE、FALSE)值

php - 使用 PHP 解析 Google 地理编码 JSON

java - 对 List<Map<String, String>> 进行排序

python - OCR手写数据显示svm.train()中的错误

python - 在 Spark ML 中创建自定义交叉验证

python - 为多索引数据框的每个索引排序列

python - Pandas 数据框中最大值的索引和列

python - 使用 python 列表理解从列表中删除项目