我基本上有一个像这样的列表:
[['1348559717', '11'],
['1348559717', '15'],
['1348562275', '16'],
['1348562275', '20'],
['1348562284', '17'],
['1348562284', '18'],
['1348562290', '19'],
['1349346149', '15'],
['1349348467', '14'],
['1350001260', '17']]
我想删除索引 [0] 中包含重复值的列表。另外,我总是需要有其索引 [1] = '20' 的列表,在本例中为 ['1348562275', '20']
。所以我想要的清单是:
[['1348559717', '11'],
['1348562275', '20'],
['1348562284', '17'],
['1348562290', '19'],
['1349346149', '15'],
['1349348467', '14'],
['1350001260', '17']]
有人知道我该怎么做吗?
答案 0 :(得分:1)
您可以使用字典,然后在处理后将其转换回列表:
from pprint import PrettyPrinter
lst = [['1348559717', '11'],
['1348559717', '15'],
['1348562275', '16'],
['1348562275', '20'],
['1348562284', '17'],
['1348562284', '18'],
['1348562290', '19'],
['1349346149', '15'],
['1349348467', '14'],
['1350001260', '17']]
id_to_num = {}
for id_, num in lst:
if id_ not in id_to_num or num == '20':
id_to_num[id_] = num
new_lst = [[id_, num] for id_, num in id_to_num.items()]
PrettyPrinter().pprint(new_lst)
输出:
[['1348559717', '11'],
['1348562275', '20'],
['1348562284', '17'],
['1348562290', '19'],
['1349346149', '15'],
['1349348467', '14'],
['1350001260', '17']]
答案 1 :(得分:1)
像这样使用dict类型怎么样?
some_list = [...] # your list what basically have
some_dict = {item[0]: item[1] for item in some_list}
#always need to have the list which its index [1] = '20'
for k, v in [i for i in a if i[1] == '20']:
some_dict[k] = v
some_list = [[k, v] for k, v in some_dict.items()]
输出:
[['1348559717', '15'],
['1348562275', '20'],
['1348562284', '18'],
['1348562290', '19'],
['1349346149', '15'],
['1349348467', '14'],
['1350001260', '17']]
希望你能更详细的告诉我删除重复值的规则。
答案 2 :(得分:1)
您可能可以对其进行更多优化,但想法如下:
items = [['1348559717', '11'],
['1348559717', '15'],
['1348562275', '16'],
['1348562275', '20'],
['1348562284', '17'],
['1348562284', '18'],
['1348562290', '19'],
['1349346149', '15'],
['1349348467', '14'],
['1350001260', '17']]
items_dict = {}
for i in items:
if i[0] not in items_dict or i[1] == '20':
items_dict[i[0]] = i[1]
items_list = []
for k,v in items_dict.items():
items_list.append([k, v])
print(items_list)
输出:
[['1348559717', '11'],
['1348562275', '20'],
['1348562284', '17'],
['1348562290', '19'],
['1349346149', '15'],
['1349348467', '14'],
['1350001260', '17']]