我有一個 ID 號主串列和另一個部分 ID 號串列。我需要檢查部分 ID 號是否在主串列中。如果是這樣,我需要將整個 ID 號回傳到一個新串列中。我擁有的:
master_list = ['20000-K-A', '20000-K-B', '20000-K-C', '30000-R-X', '30000-R-V', '30000-R-F']
partial_list = [20000, 40000, 500000]
new_list =[]
for x in partial_list:
if x in master_list:
new_list.append(x)
print(new_list)
現在,這僅適用于部分 ID 號與主串列中的完全一致的情況。如何從主串列中回傳值以便將其添加到新串列中?
uj5u.com熱心網友回復:
一種選擇是首先創建一個查找字典master_list(請注意,它master_list是一個字串串列,partial_list而是一個整數串列,所以我們需要將前綴轉換為 int):
d = {}
for item in master_list:
k, _ = item.split('-', maxsplit=1)
d.setdefault(int(k), []).append(item)
看起來像:
{20000: ['20000-K-A', '20000-K-B', '20000-K-C'],
30000: ['30000-R-X', '30000-R-V', '30000-R-F']}
然后迭代partial_list以獲取部分匹配的 Id:
new_list =[]
for x in partial_list:
new_list.extend(d.get(x, []))
輸出:
['20000-K-A', '20000-K-B', '20000-K-C']
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/454526.html
上一篇:為什么這個生產代碼有效:`base64.b64decode(api_token.encode("utf-8)).decode("utf-8")`?
