[英]Comparing Values in Dictionary with Multiple Matching Keys
我有兩個字典,它們將產品ID存儲為鍵,並將時間戳存儲為值。 問題是我重復使用唯一值的鍵。 例如:
Dict1 | Dict2
ABCDEF: 12:39:00 | ABCDEF: 10:02:00
ABCDEF: 15:45:00 | ABCDEF: 16:40:00
ABCDEF: 18:30:00 | ABCDEF: 20:22:00
(實際上不是格式化,只是一種視覺表示。我的詞典包含成千上萬個值。)我使用以下方法對它們進行了比較:
comparison = {x: dict1[x] - dict2[x] for x in dict1 if x in dict2}
但這僅比較每個字典中匹配的最后一個鍵,值。 這樣我得到的結果是01:52(一小時52分鍾)。 如何包含其他鍵,值?
編輯:更新以包括更多代碼。
dateList = []
filenameList = []
with open('File1.csv', 'r')as csvfile:
filereader = csv.reader(csvfile, delimiter=',')
next(filereader, None) #skip header row
for column in filereader:
# Extract the datetime info as a datetime object to use in timedelta
dateString = datetime.strptime(column[7], '%m/%d/%Y %H:%M').strftime('%Y-%m-%d %H:%M:%S')
dateObject = datetime.strptime(dateString, '%Y-%m-%d %H:%M:%S')
date1.append(dateObject)
# Extract filename
filename = column[1]
filenameList.append(filename)
# Zip the filenames and datetimes into a dictionary
combinedList = dict(zip(filenameList,dateList))
我從字面上重復File2的所有操作,然后才進行比較。
正如nicolishen所說,字典中的所有鍵必須唯一。 對於任何給定的鍵,您的字典將只包括添加到原始列表對中的最后一個值。
您將需要一個不同的數據結構。 考慮一個字典,其中每個產品ID都包含一個條目。 該條目的值可以是一對列表,每個列表包含一個數據文件中的時間戳信息。
productids_timestamps = {'ABCDEF':
(('12:39:00','15:45:00','18:30:00'), # File1.csv
('10:02:00','16:40:00','20:22:00'))} # File2.csv
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.