kad*_*dam 2 python tuples list
假设我有names
一个包含任意顺序名称元组的元组列表:
names = [(1,"Alice"), (2,"Bob")]
Run Code Online (Sandbox Code Playgroud)
以及genders
以任意顺序包含性别元组的另一个元组列表:
genders = [(2,"male"), (1,"female")]
Run Code Online (Sandbox Code Playgroud)
如何通过使用元组的第一个元素作为获取的键来有效地匹配这两个列表:
result = [("Alice","female"), ("Bob","male")]
Run Code Online (Sandbox Code Playgroud)
简单的单行答案,运行缓慢:
[(name, gender) for (id0, gender) in genders for (id1, name) in names if id0==id1]
Run Code Online (Sandbox Code Playgroud)
更好的答案(见Ignazio的回答):
namedict = dict(names)
genderdict = dict(genders)
[(namedict[id], genderdict[id]) for id in set(namedict) & set(genderdict)]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2913 次 |
最近记录: |