繁体   English   中英

Python-从另一个列表获取所有索引

[英]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)

其中countg1的索引, v是该索引处的元素。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM