[英]Concatenating Unique Values from List of Dictionaries with sames Keys in Python
[英]Check if Values from List of Dictionaries are Unique Without Keys
我有一本像下面這樣的字典:
d = {
"00068693": [
{"LABP": "022012"},
{"LAOS": "022012"},
{"LAOS": "022012"},
{"LAOS": "022012"},
{"LAOS": "022012"},
{"LAOS": "022012"},
{"LABC": "022012"},
{"LACL": "022012"},
{"LACL": "022012"},
{"LACL": "022012"},
{"LACL": "349309"},
],
"00084737": [
{"LABP": "022012"},
{"LAOS": "022012"},
{"LABC": "022012"},
{"LACL": "022012"},
]
}
我的代碼的目標是檢查一個 ID(例如: "00068693"
"022012"
"LAOS"
。
所以這個例子的 output 應該是:
ID: "00068693" has different codes.
ID: "00084737" has a unique code.
但是,我該如何檢查呢?
因為不知道這個ID有哪些文件,所以無法通過list的每個key進行訪問。
我不是想比較元素,只是比較每個字典的值,但它們中的每一個都在不同的列表索引上,我不知道鍵。
您可以檢查列表中的所有元素是否相同。 問題是哪個列表? 那么,您需要構建所有文件的代碼列表。 我們並不關心文件是什么,只關心它們的代碼:
for ID, files_list in d.items():
codes = [list(file_dict.values())[0] for file_dict in files_list]
print(codes)
print(f"The codes for ID {ID} are all equal? {all_equal(codes)}")
使用您的示例字典,結果如下:
['022012', '022012', '022012', '022012', '022012', '022012', '022012', '022012', '022012', '022012', '349309']
The codes for ID 00068693 are all equal? False
['022012', '022012', '022012', '022012']
The codes for ID 00084737 are all equal? True
* 上面的all_equal
是接受的重復答案中的任何選項
假設您的字典名為file_codes
,這就是您獲得結果的方式:
for k, v in file_codes.items():
if len(set([i[j] for i in v for j in i])) != 1:
print(f"IDS: {k} has different codes")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.