[英]Remove duplicated considering one element from a list of lists python
我基本上有一個這樣的列表:
[['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']]
有誰知道我該怎么做?
您可以使用字典,然后在處理后將其轉換回列表:
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)
Output:
[['1348559717', '11'],
['1348562275', '20'],
['1348562284', '17'],
['1348562290', '19'],
['1349346149', '15'],
['1349348467', '14'],
['1350001260', '17']]
像這樣使用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()]
Output:
[['1348559717', '15'],
['1348562275', '20'],
['1348562284', '18'],
['1348562290', '19'],
['1349346149', '15'],
['1349348467', '14'],
['1350001260', '17']]
希望您能更詳細地講述刪除重復值的規則。
您可能可以對其進行更多優化,但這是一個想法:
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)
Output:
[['1348559717', '11'],
['1348562275', '20'],
['1348562284', '17'],
['1348562290', '19'],
['1349346149', '15'],
['1349348467', '14'],
['1350001260', '17']]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.