我有一個缺失值的字典串列。我想通過更有效的方式用相應的值替換空值。
輸入:
[
{"Host": "dailymotion", "Url": ""},
{"Host": "youtube", "Url": ""},
{"Host": "Vimeo", "Url": ""},
{"Host": "", "Url": "https://www.dailymotion.com/video/x37j4ox"},
{"Host": "", "Url": "https://www.youtube.com/watch?v=uDLQfA2o0"},
{"Host": "", "Url": "https://vimeo.com/42399207"},
]
輸出:
[
{"Host": "dailymotion", "Url": "https://www.dailymotion.com/video/x37j4ox"},
{"Host": "youtube", "Url": "https://www.youtube.com/watch?v=uDLQfA2o0"},
{"Host": "Vimeo", "Url": "https://vimeo.com/42399207"},
]
uj5u.com熱心網友回復:
你可以
將前半部分 (
raw[:len(raw) // 2]) 與后半部分 ( )配對raw[len(raw) // 2:]使用zip然后
Host從一個 (d1['Host']) 和Url另一個 (d2['Url']) 取
raw = [{'Host': 'dailymotion', 'Url': ''},
{'Host': 'youtube', 'Url': ''},
{'Host': 'Vimeo', 'Url': ''},
{'Host': '', 'Url': 'https://www.dailymotion.com/video/x37j4ox'},
{'Host': '', 'Url': 'https://www.youtube.com/watch?v=uDLQfA2o0'},
{'Host': '', 'Url': 'https://vimeo.com/42399207'}]
result = [{'Host': d1['Host'], 'Url': d2['Url']}
for d1, d2 in zip(raw[:len(raw) // 2], raw[len(raw) // 2:])]
print(result)
uj5u.com熱心網友回復:
另一種解決方案:
lst = [
{"Host": "dailymotion", "Url": ""},
{"Host": "youtube", "Url": ""},
{"Host": "Vimeo", "Url": ""},
{"Host": "", "Url": "https://www.dailymotion.com/video/x37j4ox"},
{"Host": "", "Url": "https://www.youtube.com/watch?v=uDLQfA2o0"},
{"Host": "", "Url": "https://vimeo.com/42399207"},
]
hosts = [d["Host"] for d in lst if d["Host"] != ""]
urls = [d["Url"] for d in lst if d["Url"] != ""]
out = [{"Host": h, "Url": u} for h, u in zip(hosts, urls)]
print(out)
印刷:
[
{"Host": "dailymotion", "Url": "https://www.dailymotion.com/video/x37j4ox"},
{"Host": "youtube", "Url": "https://www.youtube.com/watch?v=uDLQfA2o0"},
{"Host": "Vimeo", "Url": "https://vimeo.com/42399207"},
]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/322855.html
上一篇:遞回函式嵌套字典python
下一篇:創建具有多個值的字典
