当前位置: 首页 > 编程笔记 >

在Python中拆分自定义列表

陈朗
2023-03-14
本文向大家介绍在Python中拆分自定义列表,包括了在Python中拆分自定义列表的使用技巧和注意事项,需要的朋友参考一下

数据分析引发了复杂的场景,在这些场景中,数据需要整理才能移动。在这种情况下,让我们看看如何根据需要将一个大列表分成多个子列表。在本文中,我们将探讨实现这一目标的方法。

带拉链和for环

在这种方法中,我们使用列表切块从必须进行分割的位置获取元素。然后,我们使用zip和for循环使用for循环创建子列表。

示例

Alist = ['Mon', 'Tue', 'Wed', 6, 7, 'Thu', 'Fri', 11, 21, 4]

# The indexes to split at
split_points = [2, 5, 8]

# Given list
print("Given list : " + str(Alist))

# SPlit at
print("The points of splitting : ",split_points)

#Perform the split
split_list = [Alist[i: j] for i, j in zip([0] +
split_points, split_points + [None])]

# printing result
print("The split lists are : ", split_list)

输出结果

运行上面的代码给我们以下结果-

Given list : ['Mon', 'Tue', 'Wed', 6, 7, 'Thu', 'Fri', 11, 21, 4]
The points of splitting : [2, 5, 8]
The split lists are : [['Mon', 'Tue'], ['Wed', 6, 7], ['Thu', 'Fri', 11], [21, 4]]

使用链条和拉链

链函数使迭代器从第一个迭代器返回元素,直到用完为止。因此,它标记了发生分裂的点。然后,我们使用zip函数将拆分结果打包为子列表。

示例

from itertools import chain
Alist = ['Mon', 'Tue', 'Wed', 6, 7, 'Thu', 'Fri', 11, 21, 4]

# The indexes to split at
split_points = [2, 5, 8]

# Given list
print("Given list : ", str(Alist))

# Split at
print("The points of splitting : ",split_points)

# to perform custom list split
sublists = zip(chain([0], split_points), chain(split_points, [None]))
split_list = list(Alist[i : j] for i, j in sublists)

# printing result
print("The split lists are : ", split_list)

输出结果

运行上面的代码给我们以下结果-

Given list : ['Mon', 'Tue', 'Wed', 6, 7, 'Thu', 'Fri', 11, 21, 4]
The points of splitting : [2, 5, 8]
The split lists are : [['Mon', 'Tue'], ['Wed', 6, 7], ['Thu', 'Fri', 11], [21, 4]]
 类似资料:
  • 问题内容: 如果我们在python中有一个,并且想要基于一些特殊的条件创建子列表,我们应该怎么做? 例如: 会产生: 问题答案: itertools.groupby是一种方法(通常是这样): 由于这种特殊情况,我们甚至可以作弊:

  • 我有一排12列。我需要为这个应用程序创建2行,前6列在第一行,后6列在第二行。 我需要这样的东西: 这有可能实现吗?

  • 问题内容: 我正在尝试使我的对象可包裹。但是,我有自定义对象,这些对象具有ArrayList我制作的其他自定义对象的属性。 最好的方法是什么? 问题答案: 您可以在此处,此处(在此处获取代码)和此处找到一些示例。 您可以为此创建一个POJO类,但是您需要添加一些额外的代码来实现它Parcelable。看一下实现。 创建此类后,您可以Intent像这样轻松地传递此类的对象,并在目标活动中恢复该对象。

  • 问题内容: 我有一个小样本数据: 好像 我想用’-‘分隔符分隔列’V’并将其移至另一个名为’allele’的列 到目前为止,我尝试过的代码不完整,无法正常工作: 要么 问题答案: 与vectoried一起使用:

  • 我正在尝试用Python以编程方式拆分wav文件。基于stackoverflow的提示以及Python wave模块的文档,我将执行以下操作 我迭代了许多不同的起始值和结束值,并以这种方式从原始文件中提取音频块。奇怪的是,这种技术对某些块非常有效,而对其他块产生垃圾白噪声。此外,没有明显的模式表明起始位置和结束位置会产生白噪声,只是输入文件会持续产生白噪声。 有人以前经历过这种行为吗?或者知道我做

  • 问题内容: 从美学角度和性能角度来看,基于条件将项目列表拆分为多个列表的最佳方法是什么?相当于: 有没有更优雅的方法可以做到这一点? 更新:这是实际的用例,以更好地解释我正在尝试做的事情: 问题答案: 有没有更优雅的方法可以做到这一点? 该代码完全可读,而且非常清晰! 再次,这很好! 使用集合可能会稍微改善性能,但这是微不足道的差异,而且我发现列表理解要容易阅读得多,并且你不必担心顺序被弄乱了,重