我正在嘗試在字典中查找匹配的名稱。用戶發送如下所示的請求:
req= [{"host":"usr1"}, {"host":"usr7"}, {"host":"usr10"}, {"host":"usr11"}, {"host":"usrx...."}, ..../more hosts]
然后我檢查另一個字典中的匹配項,如下所示:
data = [
{
"host": "usr1",
"address": "x"
},
{
"host": "usr2",
"address": "y"
},
{
"host": "usr3",
"address": "z"
}
.../ more hosts
]
如果用戶的請求與我想彈出該主機的資料庫之間存在匹配項。我試過這樣:
new_static = []
for x, i in zip(data, req):
if i['host'] != x['host']:
new_static.append(x)
data = new_static
continue
它可以作業,但是如果 req 的 len 和資料不相等,則會出現問題,我也嘗試了雙嵌套回圈,但沒有成功。任何幫助都會有所幫助
uj5u.com熱心網友回復:
您可以嘗試使用以下嵌套回圈解決方案:
req= [{"host":"usr1"}, {"host":"usr7"}, {"host":"usr10"}, {"host":"usr11"}]
data = [
{
"host": "usr1",
"address": "x"
},
{
"host": "usr2",
"address": "y"
},
{
"host": "usr3",
"address": "z"
}]
for i in req:
for j in data:
if i["host"] == j["host"]:
print("Host: ", i["host"])
輸出:
Host: usr1
uj5u.com熱心網友回復:
假設您的請求中的物件只包含一個鍵,您可以將其簡化為一個set以提高效率。然后,假設您要過濾data具有hostnot in的元素req,可以通過以下方式完成:
hosts_request = set(el['host'] for el in req)
filtered_data = [entry for entry in data if entry['host'] not in hosts_request]
uj5u.com熱心網友回復:
sinmple = [e["host"] for e in data]
for r in req:
if r["host"] in simple:
pass
# do something with the duplicat
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/495565.html
