0x0*_*01h 5 python tuples list unique python-3.x
如何以最 Pythonic 的方式根据元组的第一个值创建唯一的元组列表?
例子:
list_of_tuples = [('a', 1), ('a', 2), ('b', 3)]
# Apply here magical Pythonic one liner.
print(list_of_tuples)
[('a', 1), ('b', 3)]
Run Code Online (Sandbox Code Playgroud)
使用itertools.groupby:
[next(g) for _, g in groupby(tups, key=lambda x:x[0])]
Run Code Online (Sandbox Code Playgroud)
输出:
[('a', 1), ('b', 3)]
Run Code Online (Sandbox Code Playgroud)
如果原始列表需要排序:
tups = [('a', 1), ('a', 2), ('b', 3), ('a', 3)]
f = lambda x:x[0]
[next(g) for _, g in groupby(sorted(tups, key=f), key=f)]
Run Code Online (Sandbox Code Playgroud)
输出:
[('a', 1), ('b', 3)]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1599 次 |
| 最近记录: |