python - 根据唯一性将列表列表转换为数字列表
问题描述
所以让我们说我们有一个二维数字列表:
[[1, 2, 3], [5, 6, 7], [1, 2, 3], [1, 2, 5]]
我想将每个子列表更改为一个数字,但让类似的列表具有相同的数字。所以给定的例子会变成:
[1, 2, 1, 3]
有没有一种有效的方法来做到这一点?
解决方案
你可以试试这个:
l = [[1, 2, 3], [5, 6, 7], [1, 2, 3], [1, 2, 5]]
from itertools import count
from collections import defaultdict
from functools import partial
m = defaultdict(partial(next, count()))
[m[tuple(e)]+1 for e in l]
Out[24]: [1, 2, 1, 3]
推荐阅读
- node.js - 如何为体式创建简单的 webhook
- java - 在 n 到 m 的范围内,每 2 小时随机触发一次 Jenkins 作业
- python - 当我在请求输入时尝试打破 while 循环时,如何克服“NameError:名称'x'未定义”?
- python - ValueError:“Flatten”的输入形状未完全定义(神经网络)
- ios - Xcode 10.1 存档时不显示“分发应用程序”选项,无法存档
- javascript - 如何保持要加载的面板的流程?
- javascript - 在 nginx 反向代理上使用 mithril.js 做一些请求
- c++ - 将 std::find 与用户提供的谓词一起使用 - 自制 find() 重载
- c - 服务器端口的 UDP 套接字多路分解
- mysql - Hive/ MySQL - 需要帮助来增加输入列中的连续 1