如何将一个列表中的多个变量合二为一?

时间:2017-04-23 15:35:21

标签: python python-3.x

C= ['a', 'a', 'a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'c', 'c', 'c', 'c', 'c']

如何将其变成这样的新变量。

Cnew=['a','b','c']

是否有功能或我可以做的任何事情?

3 个答案:

答案 0 :(得分:4)

我将列表转换为一组:

C= ['a', 'a', 'a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'c', 'c', 'c', 'c', 'c']
Cnew = set(C)

Set的工作与列表非常相似,但它们只允许每个元素中的一个,这就是你想要的。但是,如果您真的想要一个列表,只需通过list函数将该集转换回列表。

根据OP的请求

C= ['a', 'a', 'a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'c', 'c', 'c', 'c', 'c']
cNew = []
for value in C:
    if value not in cNew:
        cNew.append(value)
print(cNew)

答案 1 :(得分:1)

如果您想保留订单并删除重复项,请使用collections.OrderedDict的一种方法:

from collections import OrderedDict

C= ['a', 'a', 'a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'c', 'c', 'c', 'c', 'c']
new_C = list(OrderedDict.fromkeys(C).keys())

虽然看起来这也足以满足您的使用案例:

new_C = sorted(set(c))

值得注意的是,如果您还不知道,list对象(来自您所需输出的数据结构)中的查找(检查成员资格)是时间复杂度{{1 } {} O(n)对象的查找是set。这一切都取决于你尝试用输出做什么,当然......

答案 2 :(得分:1)

您可以使用...slideUp(300, this.showPanel.bind(this)); ,所以:

set()