作为我分析的结果,我将列出每个测量将发生两次的列表.可能有两次测量(在本例中,1被测量两次)

example_list = [1, 2, 3, 4, 1, 1, 2, 1, 3, 4]

我想要的结果:

outcome = [1, 2, 3, 4, 1]

顺序并不重要,只要每一次测量只发生一次.

因为可能会有重复测量,所以我不能用unique().

有没有办法有效地将列表减半,以便每次测量只出现一次?

编辑以澄清:重复测量的列表元素将出现4次(在本例中)或更多,重复测量的列表元素将出现两次

推荐答案

如果不存在关于需要丢弃的元素在列表中的位置的逻辑,那么一个选项是使用Counter,并将计数减半:

from collections import Counter

c = Counter(example_list)
for key in c:
    c[key] //= 2
lst = list(c.elements())

对于您的示例输入,lst将是[1, 1, 2, 3, 4]

Python相关问答推荐

当密钥是复合且唯一时,Pandas合并抱怨标签不唯一

我必须将Sigmoid函数与r2值的两种类型的数据集(每种6个数据集)进行匹配,然后绘制匹配函数的求导.我会犯错

具有多个选项的计数_匹配

计算组中唯一值的数量

从groupby执行计算后创建新的子框架

如何在Python脚本中附加一个Google tab(已经打开)

try 将一行连接到Tensorflow中的矩阵

SQLAlchemy Like ALL ORM analog

如何让这个星型模式在Python中只使用一个for循环?

我如何根据前一个连续数字改变一串数字?

将JSON对象转换为Dataframe

在单个对象中解析多个Python数据帧

Pandas Data Wrangling/Dataframe Assignment

在pandas数据框中计算相对体积比指标,并添加指标值作为新列

Python将一个列值分割成多个列,并保持其余列相同

Pandas 数据帧中的枚举,不能在枚举列上执行GROUP BY吗?

如何使用pytest在traceback中找到特定的异常

使用np.fft.fft2和cv2.dft重现相位谱.为什么结果并不相似呢?

Django抛出重复的键值违反唯一约束错误

具有不匹配列的2D到3D广播