python - 如何使用存储在列表中的列表名称来执行列表操作?
问题描述
我是一组列表,在这些列表中,我想要执行的是在每个列表中的元素上找到第一次出现。假设我有以下列表:
D1 = [1,2,3,4,5]
D2 = [2,7,6,5,4]
D3 = [1,2,6,8,7]
现在对于每个列表,我想找出元素 2 第一次出现的位置。在这方面,我首先将列表的名称存储在一个单独的列表中。我已经使用以下代码完成了它:
s_list = []
for i in range(1,4):
s_list.append('D'+str(i))
print(s_list)
现在,使用这些名称,我想使用以下代码执行最终操作:
elem = 2
index_pos = []
for i in s_list:
k = i.index(elem)
index_pos.append(k)
print(index_pos)
但是,在这样做时,我收到以下错误:
TypeError: must be str, not int
我试过 str(i) 而不是 i 但错误仍然相同。
如果有人能指出我做错了什么,那真的很有帮助。
解决方案
您认为列表“D”进入的s_list
方式是不正确的,它是类型strings
。相反,它可以通过以下方式完成。
例子:
D1 = [1,2,3,4,5]
D2 = [2,7,6,5,4]
D3 = [1,2,6,8,7]
s_list = [D1,D2,D3]
print(s_list)
输出:
[[1, 2, 3, 4, 5], [2, 7, 6, 5, 4], [1, 2, 6, 8, 7]]
这里的代码是正确的和相同的:
elem = 2
index_pos = []
for i in s_list:
k = i.index(elem)
index_pos.append(k)
print(index_pos)
输出:
[1, 0, 1]
推荐阅读
- javascript - 将字符串值转换为数字时无法读取 null 的属性“替换”
- reactjs - 如何在 React 的 UseState 中存储 Firebase 实时数据库对象
- ios - 表视图单元格 reloadData 后保持集合视图选择状态
- reactjs - 如何通过从对象附加子元素来创建父 html 元素?
- python - 调用 += 时不添加硬币
- python - 如何根据关键列比较两个数据框
- oracle - 在 Oracle 10g 中删除用户后回收表空间
- swift - Collectionview 进入 if 条件但在 Swift 中不被称为 else 条件
- javascript - 类型 {}[] 不可分配给 {}[]
- reactjs - useRef 有时不会更新,只打印对象