[英]Python - get all index from another list
我正在尝试附加另一个列表的索引列表。
我有一个带有随机数的列表,需要创建另一个列表,其中包含第一个列表的索引。
我的代码是这样的:
from random import seed
from random import randint
seed(715)
g1 = []
g2 = []
for v in range(20328):
valor = randint(40, 220)
g1.append(valor)
for v in enumerate(g1):
g2.append(v)
print("v g1[v] g2[v] g1[g2[v]]")
for v in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]:
print(v, g1[v], g2[v], g1[g2[v]])
但是我得到以下错误:
print(v, g1[v], g2[v], g1[g2[v]])
TypeError: list indices must be integers or slices, not tuple
我究竟做错了什么?
g2被设置为程序中的元组列表,而不是整数。 如果使用print(g2[0])
来查看内部内容,则会得到类似g2[0]:(0, 69)
的元组。 这就是问题所在。
您可以使用以下任一方法解决此问题:
for v in enumerate(g1):
g2.append(v[1])
要么
for index, value in enumerate(g1):
g2.append(value)
要么
for value in g1:
g2.append(value)
有用的资源: https : //docs.python.org/3/library/functions.html#enumerate
就像Sandeep Kadapa所说的那样,g2变成了一个元组,所以尝试做类似的事情,
list(g2)
在枚举之后和调用打印函数之前。
您使用枚举用元组填充g2,枚举将为您提供索引和值作为元组,因此,每当调用g2 [v]时,您都不会仅获得索引,您将获得(值)。 如果只需要g2中的索引,则应使用以下创建g2的方法。
for i, v in enumerate(g1):
g2.append(i)
也许您只需要向第二个列表添加索引?
for index, v in enumerate(g1):
g2.append(index)
顺便说一句,我会用类似的东西代替该功能:
g2 = list(range(len(g1))
请让我知道这对你有没有用
将代码集v
枚举为元组。 您将使用以下格式生成索引和元素:
for count, v in enumerate(g1):
g2.append(count)
其中count
是g1
的索引, v
是该索引处的元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.