![](/img/trans.png)
[英]How can I add a list of values to a dictionary where the first element in the list belongs to the first key and so on...?
[英]How shall I add one of the key and its values of second list of dictionary to the first list of dictionary based on the condition
從下面的列表中,如果兩個列表中只有“文件名”匹配,我想將 list_b 中的“速度”添加到 list_a。 我新形成的 list_a 的輸出現在需要有 4 個鍵和它們各自的值。 這個怎么做?
第一個字典列表
list_a =[{'Filename': '20211004T102400622.jpg',
'convertedDate': Timestamp('2021-10-04 10:24:00'),
'path_name': '/content/drive/My Drive/train later/Continuous Running Time/Front Camera/20211004T102400622.jpg'},
{'Filename': '20211004T102403688.jpg',
'convertedDate': Timestamp('2021-10-04 10:24:03'),
'path_name': '/content/drive/My Drive/train later/Continuous Running Time/Front Camera/20211004T102403688.jpg'},
{'Filename': '20211004T102403684.jpg',
'convertedDate': Timestamp('2021-10-04 10:24:03'),
'path_name': '/content/drive/My Drive/train later/Continuous Running Time/Front Camera/20211004T102403684.jpg'},
{'Filename': '20211004T102406737.jpg',
'convertedDate': Timestamp('2021-10-04 10:24:06'),
'path_name': '/content/drive/My Drive/train later/Continuous Running Time/Front Camera/20211004T102406737.jpg'},
{'Filename': '20211004T102409773.jpg',
'convertedDate': Timestamp('2021-10-04 10:24:09'),
'path_name': '/content/drive/My Drive/train later/Continuous Running Time/Front Camera/20211004T102409773.jpg'}]
第二個字典列表
list_b = [{'Filename': '20211004T102400622.jpg',
'Speed': '0.3',
'Time': '2021-10-04T10:24:00.622Z'},
{'Filename': '20211004T102403684.jpg',
'Speed': '0.2',
'Time': '2021-10-04T10:24:03.684Z'},
{'Filename': '20211004T102403688.jpg',
'Speed': '0.2',
'Time': '2021-10-04T10:24:03.688Z'},
{'Filename': '20211004T102406737.jpg',
'Speed': '0.0',
'Time': '2021-10-04T10:24:06.737Z'},
{'Filename': '20211004T102409773.jpg',
'Speed': '0.1',
'Time': '2021-10-04T10:24:09.773Z'}]
使用字典理解來創建字典filename_to_speed
,用於查找給定文件名的速度。 然后使用循環構建新列表。 首先檢查文件名是否存在於filename_to_speed
中,否則添加一個值None
。
# I am guessing this is where Timestamp comes from.
# Or import it the same way you did in your code (not shown)
from pandas import Timestamp
list_a =[{'Filename': '20211004T102400622.jpg',
'convertedDate': Timestamp('2021-10-04 10:24:00'),
'path_name': '/content/drive/My Drive/train later/Continuous Running Time/Front Camera/20211004T102400622.jpg'},
{'Filename': '20211004T102403688.jpg',
'convertedDate': Timestamp('2021-10-04 10:24:03'),
'path_name': '/content/drive/My Drive/train later/Continuous Running Time/Front Camera/20211004T102403688.jpg'},
{'Filename': '20211004T102403684.jpg',
'convertedDate': Timestamp('2021-10-04 10:24:03'),
'path_name': '/content/drive/My Drive/train later/Continuous Running Time/Front Camera/20211004T102403684.jpg'},
{'Filename': '20211004T102406737.jpg',
'convertedDate': Timestamp('2021-10-04 10:24:06'),
'path_name': '/content/drive/My Drive/train later/Continuous Running Time/Front Camera/20211004T102406737.jpg'},
{'Filename': '20211004T102409773.jpg',
'convertedDate': Timestamp('2021-10-04 10:24:09'),
'path_name': '/content/drive/My Drive/train later/Continuous Running Time/Front Camera/20211004T102409773.jpg'}]
list_b = [{'Filename': '20211004T102400622.jpg',
'Speed': '0.3',
'Time': '2021-10-04T10:24:00.622Z'},
{'Filename': '20211004T102403684.jpg',
'Speed': '0.2',
'Time': '2021-10-04T10:24:03.684Z'},
{'Filename': '20211004T102403688.jpg',
'Speed': '0.2',
'Time': '2021-10-04T10:24:03.688Z'},
{'Filename': '20211004T102406737.jpg',
'Speed': '0.0',
'Time': '2021-10-04T10:24:06.737Z'},
{'Filename': '20211004T102409773.jpg',
'Speed': '0.1',
'Time': '2021-10-04T10:24:09.773Z'}]
filename_to_speed = {dct['Filename'] : dct['Speed'] for dct in list_b}
list_new = []
for dct in list_a:
if dct['Filename'] in filename_to_speed:
dct['Speed'] = filename_to_speed[dct['Filename']]
else:
dct['Speed'] = None
list_new.append(dct)
print(list_new)
# [{'Filename': '20211004T102400622.jpg', 'convertedDate': Timestamp('2021-10-04 10:24:00'), 'path_name': '/content/drive/My Drive/train later/Continuous Running Time/Front Camera/20211004T102400622.jpg', 'Speed': '0.3'}, {'Filename': '20211004T102403688.jpg', 'convertedDate': Timestamp('2021-10-04 10:24:03'), 'path_name': '/content/drive/My Drive/train later/Continuous Running Time/Front Camera/20211004T102403688.jpg', 'Speed': '0.2'}, {'Filename': '20211004T102403684.jpg', 'convertedDate': Timestamp('2021-10-04 10:24:03'), 'path_name': '/content/drive/My Drive/train later/Continuous Running Time/Front Camera/20211004T102403684.jpg', 'Speed': '0.2'}, {'Filename': '20211004T102406737.jpg', 'convertedDate': Timestamp('2021-10-04 10:24:06'), 'path_name': '/content/drive/My Drive/train later/Continuous Running Time/Front Camera/20211004T102406737.jpg', 'Speed': '0.0'}, {'Filename': '20211004T102409773.jpg', 'convertedDate': Timestamp('2021-10-04 10:24:09'), 'path_name': '/content/drive/My Drive/train later/Continuous Running Time/Front Camera/20211004T102409773.jpg', 'Speed': '0.1'}]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.