python - 列表理解以获取相同值的 2D 列表
问题描述
我有以下数字:
arr = [4, 5, 5, 5, 6, 6, 4, 1, 4, 4, 3, 6, 6, 3, 6, 1, 4, 5, 5, 5]
我想创建一个列表理解,它将匹配我在二维列表数组中的所有相同值,例如:
[[1, 1], [3, 3], [4, 4, 4, 4, 4], [5, 5, 5, 5, 5, 5], [6, 6, 6, 6, 6]]
我试过类似的东西:
listArr = sorted(arr)
不幸的是,我不知道如何将排序后的数字放入二维列表数组中。
解决方案
您可以创建临时字典对数字进行分组:
s = "4 5 5 5 6 6 4 1 4 4 3 6 6 3 6 1 4 5 5 5"
out = {}
for d in s.split():
out.setdefault(d, []).append(int(d))
out = sorted(out.values())
print(out)
印刷:
[[1, 1], [3, 3], [4, 4, 4, 4, 4], [5, 5, 5, 5, 5, 5], [6, 6, 6, 6, 6]]
如果s
是一个list
数字:
out = {}
for d in s:
out.setdefault(d, []).append(d)
out = sorted(out.values())
print(out)
推荐阅读
- flutter - HERE SDK Flutter:平滑相机 + 移除 3D 建筑
- kotlin - StateFlow 与应用程序的生命周期相关,但没有 GlobalScope(Android、协程)
- javascript - 如何防止元素的移动移动其他元素?
- javascript - 在某个点停止滚动并继续使用滚动移动来做事
- javascript - 如果状态更新,React 是否会更新依赖于组件状态的所有变量和对象?
- list - 如何通过 Map 的特定键合并/加入两个 Map 列表?
- google-analytics - 谷歌分析自定义维度混淆
- android - 当 Koin 可用时,我为什么要使用 Android Hilt (Dagger2)
- primeng - 在primeng-calendar范围选择中动态设置maxDate
- kotlin - Kotlin 中的任何字符串函数?