python-3.x - 将列表列表转换为整数列表
问题描述
Python新手问题:
我有一个这样的列表:
list1 = [[1.0, 0.0, 0.0],[0.0, 0.0, 1.0],[0.0, 0.0, 1.0],[0.0, 1.0, 0.0],[0.0, 0.0, 1.0]]
我想转换为另一个这样的列表(一个包含 1.0 所在索引的整数):
list2 = [0,2,2,1,2]
尝试这样做:
d = {[1.0, 0.0, 0.0]:0,
[0.0, 1.0, 0.0]:1,
[0.0, 0.0, 1.0]:2}
list2 = map(d.get, list1)
但没有成功
解决方案
pythondict
的键不能是可变的,修改现有代码的最快方法是将tuple
s 作为键提供:
list1 = [[1.0, 0.0, 0.0],[0.0, 0.0, 1.0],[0.0, 0.0, 1.0],[0.0, 1.0, 0.0],[0.0, 0.0, 1.0]]
d = {(1.0, 0.0, 0.0):0,
(0.0, 1.0, 0.0):1,
(0.0, 0.0, 1.0):2}
list2 = list(map(lambda x: d.get(tuple(x)), list1))
推荐阅读
- react-native - 不变违规:文本字符串必须在
零件 - json - cURL:将标准输入作为数据发送时 JSON 无效
- angular - 表单验证 - 全局应用(不一致的行为)
- python - ValueError: learning_rate 必须大于 0 但为 0
- python - 如何将我的功能放入 class.Beginner
- python - 如何在 python 中隐藏“没有可用的实例”?
- python - Python:在字典中写一个项目,但一切都会受到影响
- java - 任何人都可以为 JSONException 解决这个问题吗?我',
- python-unicode - 如何将字符串添加到 unicode 而不会出现 unicode 转义弹出的错误?
- c# - How to shoot multiple bullets at the same time in different directions?