因此,我有一個包含 1000 個子串列的串列,其中子串列具有這種格式的日期“2022-01-01”和另一個串列的索引。所以串列看起來像這樣 [["2022-01-01", 3], ["2010-01-01", 1], ["2022-01-01", 12]] 有 1000 個元素。
我想要得到的是一個帶有子串列的新串列,它的日期索引是相等的。
所以輸出應該是這樣的 [[3, 12,]]。
我試過了
count = 0
for i in range(len(dateList)):
if i != x:
if dateList[i][0] == dateList[x][0]:
print(dateList[i][0], dateList[x][0])
count = 1
或者
for i in range(len(dateList)):
for x in range(len(dateList)):
if 1!= x:
if dateList[i][0] == dateList[x][0]:
print(dateList[i][0], dateList[x][0])
我理解為什么兩者都是錯誤的,我用它們來試圖讓我的想法得到正確的答案。但是我似乎找不到任何解決方案。
uj5u.com熱心網友回復:
您可以使用defaultdict創建以日期為鍵的資料結構,其值是這些日期出現的索引。一旦你創建了這樣一個東西,你可以迭代它的值,選擇那些有多個條目的:
from collections import defaultdict
date_list = [["2022-01-01", 3], ["2010-01-01", 1], ["2022-01-01", 12]]
d = defaultdict(list)
for i,date_pair in enumerate(date_list):
date = date_pair[0]
d[date].append(i)
duplicates = [v for v in d.values() if len(v) > 1]
print(duplicates) #[[0,2]]
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/527758.html
標籤:Python列表
下一篇:如何按順序添加Python串列?
