用Python将列表填充为来自不同列表的元素

3

我希望通过读取其他列表中的信息来生成一个列表。该列表将采用如下格式maindot =[dot1[0], dot2[0], ...],其中的信息来自于dot1等列表,例如:

dot1=[2,4,34], dot2=[3,45,4], 

这将在单独的参数文件中进行。用户将指定点列表的数量n。

我如何编写代码,使得Python“知道”参数文件中给出的点列表数量?


你如何在不预先知道列表 dot1, dot2 等有多少个的情况下获取它们?你几乎肯定需要将它们全部收集到一个列表中(该列表的长度为 n),然后你的问题的解决方案将会是不同的(而且简单)。提供有关你的参数文件的更多信息,我们会帮你解决。 - alexis
所以我的参数文件看起来像这样:n=2 #点列表的数量 dot1 = [34, 300, 5,6,7,0] dot2 = [22, 300, 4,3,7,0]用户可以增加n并添加另一个列表。 - h_user
我什么也没看到...请编辑您的问题并粘贴信息。 - alexis
但基本上你的目标是从参数文件中构建一个列表的列表,然后使用Kasra最新版本的解决方案。 - alexis
1个回答

0
您可以使用zip函数从任意数量的可迭代对象中获取列:
>>> dot1=[2,4,34]
>>> dot2=[3,45,4]
>>> zip(dot1,dot2)
[(2, 3), (4, 45), (34, 4)]

如果你想把列表的第一个索引放在另一个列表中,你可以直接获取zip(dot1,dot2)的第一个索引:

new_list=zip(dot1,dot2)[0]

请注意,在Python 3中,zip返回一个生成器,因此您可以使用next函数来访问第一个索引:
new_list=next(zip(dot1,dot2))

如果您有很多列表,您可以将它们全部放在一个列表中,并通过解包操作将它们全部传递给zip函数:

new_list=zip(*main_list)[0]

但是我如何将其扩展到n个列表? - h_user
列表的数量不是固定的,而是由用户定义的。因此,我需要硬编码一个可以处理这个问题的解决方案。 - h_user
@h_user 这不重要,只需将输入列表放入一个 main_list 中,并将其传递给 zip 函数即可。 - Mazdak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接