我有以下列表清单(列表):
[[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)
我认为这应该有用,但事实并非如此,所以我在想是否有人可以指出我正确的方向?
答案 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)