查找字符串是否不是Python列表中的一部分

时间:2013-08-25 12:58:30

标签: python

我有以下列表清单(列表):

[[abc-kr, 0, 4, -0.031]
[kkg-kg, 0, 6, -0.03]
[art-m, 1, 20, 0.036]
[abc-kg, 0, 4, -0.023]]

如果第一项的第一部分相同,我想制作另一个列表并删除列表,因此List中的第一个或最后一个列表应该是新列表的一部分。如果包含较低值的项目将保留在列表2上会更好。

作为一个起点,我一直试图这样做:

finalList = []
for line in List:
item = line.split("-")
if item[0] not in finalList:
    finalList.append(line)

我认为这应该有用,但事实并非如此,所以我在想是否有人可以指出我正确的方向?

2 个答案:

答案 0 :(得分:3)

类似的东西:

data = [['abc-kr', 0, 4, -0.031],
['kkg-kg', 0, 6, -0.03],
['art-m', 1, 20, 0.036],
['abc-kg', 0, 4, -0.023]]

new_data = {el[0].partition('-')[0]:el for el in data}.values()

答案 1 :(得分:1)

您需要维护一个单独的数组,其中包含每个项目的“第一部分”,只有当项目的第一部分不属于该数组时,才会添加该项目的第一部分,并且检查是反对这个第一部分数组,而不是反对finalList。换句话说,

finalList = []
firstParts = []
for line in List:
    item = line[0].split("-")
    print item[0]
    if item[0] not in firstParts:
            firstParts.append(item[0])
            finalList.append(line)