如何在另一个列表中的不同大小的列表上获取元素?

超级流浪汉

如何将所有元素放入不同大小的子列表中?

我在a_list中有子列表:

a_list = [['a', 'b'], ['a', 'b'], ['a']]

我需要根据所有元素的索引对其进行分组,并且如果子列表缺少元素,则需要忽略所有元素。

这是我需要的输出:

['a', 'a', 'a']
['b', 'b'] # here's where I'm having problems

我试过了:

for index, a in enumerate(a_list):
   another_list = (list(zip(*a_list))[index]) # IndexError

还尝试了:

another_list = list()
for index, a in enumerate(a_list):      
  another_list.append([x[index] for x in a_list])  # IndexError
兰特·德拉罗韦

这应该工作:

a_list = [['a', 'b'], ['a', 'b'], ['a']]

r = len(max(a_list, key=len))
z = [sum([x[i:i+1] for x in a_list], []) for i in range(r)]
z
>>> [['a', 'a', 'a'], ['b', 'b']]

说明:

让我们考虑您的第二次尝试:

another_list = list()
for index, a in enumerate(a_list):      
  another_list.append([x[index] for x in a_list])  # IndexError

此代码的问题是:

  1. 您正在遍历a_list,而您应该遍历索引(我使用最长子列表的范围)
  2. 您会收到IndexError,因为您使用来访问sublist元素x[index],而我使用时x[index:index+1],它将返回一个列表(如果索引超出范围,则为空)
  3. 我用来sum(index_group, [])整理组(请参见下面的代码)

然后在我的代码中将所有这些内容合并到一个列表理解中,但是下面可以for像您一样使用循环找到等效的版本

您的代码的修改后的版本:

a_list = [['a', 'b'], ['a', 'b'], ['a']]
another_list = list()
for index in range(max([len(x) for x in a_list])):  # loop over indexes
    # create a list of sublist slices containing the index-th element
    ind_group = [x[index:index+1] for x in a_list]
    # flatten the list
    flat_ind_group = sum(ind_group, [])
    another_list.append(flat_ind_group)
another_list

>>> [['a', 'a', 'a'], ['b', 'b']]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在python中求和与另一个列表的元素相对应的列表元素

如何从 Blazor 中的不同 API 路由获取另一个列表的列表?

如何在另一个列表内的列表中添加元素?

如何在sqlite中查找列表是否包含另一个列表的任何元素

如何在另一个列表的元组中插入列表元素

如何在scala中的另一个列表的每个元素的末尾添加一个列表的每个元素?

如何从另一个列表中的列表中获取另一个列表中的值

如何根据另一个列表中另一个元素的索引从列表中写出元素?

如何从另一个列表元素中获取List <myClass>,我得到CastList

如何在python中的另一个列表上使用一个列表运行模条件

如何在另一个列表之间控制另一个元素列表

SwiftUI:在推送另一个视图之前,如何在列表中获取选定的行

R:如何使用一个列表的元素重命名不同长度的另一个列表的元素?

如何根据另一个列表中的索引从列表中获取子列表?

如果值在另一个列表中,如何在条件上求和

Android:如何在列表中的OnItemLongClick上显示来自另一个ArrayList的数据

如何在 Python 中检查列表的每个元素,是否包含在另一个列表中?

如何比较列表列表中的重复元素并在python中的列表相同列表的另一个元素上给出IF条件

如何获取具有另一个列表元素长度的列表?

如何在python中将一个元素从列表移动到另一个

如果在另一个列表中找不到一个列表中的元素,我如何在列表理解中使用 else ?

如何在包含相同元素的另一个列表中找到一个列表的元素索引?

从列表中获取相对于python中另一个元素的元素

如何用零比较另一个列表替换一维列表中的元素?

如果它的索引在另一个列表上,则从列表中获取项目

如何根据另一个列表的内容删除一个列表中的列表元素?

Kotlin如何从另一个列表中的元素更新一个列表中的元素?

如何用另一个列表中的多个元素替换列表中的一个元素?

如何从另一个列表中查找列表中存在的元素