首页 > 解决方案 > 如何使用存储在列表中的列表名称来执行列表操作?

问题描述

我是一组列表,在这些列表中,我想要执行的是在每个列表中的元素上找到第一次出现。假设我有以下列表:

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 但错误仍然相同。

如果有人能指出我做错了什么,那真的很有帮助。

标签: pythonstringlist

解决方案


您认为列表“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]

推荐阅读