gpt4 book ai didi

Python 列表索引拆分和操作

转载 作者:太空宇宙 更新时间:2023-11-03 13:19:59 25 4
gpt4 key购买 nike

我的问题看起来很简单,但是对于像我这样的 python 新手来说,这开始变得太复杂了,我无法理解,所以情况是这样的:

我需要一个列表,例如:

L = [(a, b, c), (d, e, d), (etc, etc, etc), (etc, etc, etc)]

并使每个索引成为一个单独的列表,以便我可以专门从每个索引中提取元素。问题是我实际使用的列表包含数百个索引,例如上面的索引,我不能做类似的事情:

L_new = list(L['insert specific index here'])

对于每一个,因为这意味着用与第一个列表的各个索引相对应的数百个列表来填充内存,从我的角度来看,这会消耗太多时间和内存。所以我的问题是,我如何分离这些索引,然后从中提取各个部分,而不需要创建数百个单独的列表(至少到我不需要数百个单独的行来创建它们的程度)。

最佳答案

我可能误读了您的问题,但我倾向于说您实际上无需执行任何操作即可为您的元组编制索引。请参阅我的评论,但是:L[0][0] 将给出 "a"L[0][1] 将给出 "b", L[2][1] 会给出 "etc" etc...

如果您真的想要一种干净的方式将其转换为列表列表,您可以使用列表理解:

cast = [list(entry) for entry in L]

针对您的评论:如果您想跨维度访问,我建议您使用列表理解。具体针对您的评论:

crosscut = [entry[0] for entry in L]

对评论 2 的回应:这主要是一个非常有用的操作的一部分,称为切片。具体来说,要执行引用的操作,您可以这样做:

multiple_index = [entry[0:3] for entry in L]

根据您的可读性偏好,这里实际上有多种可能性:

list_of_lists = []
for sublist in L:
list_of_lists.append(list(sublist))

iterator = iter(L)
for i in range(0,iterator.__length_hint__()):
return list(iterator.next())
# Or yield list(iterator.next()) if you want lazy evaluation

关于Python 列表索引拆分和操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17238781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com