在 Python 中拆分列表的元素
Split the elements of a list in Python
要在 Python 中拆分列表的元素:
- 使用列表理解来遍历列表。
- 在每次迭代中,调用
split()
方法来拆分每个字符串。 - 返回要保留的每个字符串的部分。
主程序
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list and keep first part result_1 = [item.split('-', 1)[0] for item in my_list] print(result_1) # 👉️ ['a', 'b', 'c', 'd'] # ✅ split each element in list into nested lists result_2 = [item.split('-') for item in my_list] print(result_2) # 👉 [['a', '1'], ['b', '2'], ['c', '3'], ['d', '4']] # ✅ split each element in list and flatten list result_3 = [item.split('-') for item in my_list] result_3_flat = [item for l in result_3 for item in l] print(result_3_flat) # 👉️ ['a', '1', 'b', '2', 'c', '3', 'd', '4'] # ✅ split specific element in list result_4 = my_list[0].split('-') print(result_4) # 👉️ ['a', '1']
第一个示例显示如何拆分列表中的每个元素并仅保留第一部分。
主程序
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list and keep first part result_1 = [item.split('-', 1)[0] for item in my_list] print(result_1) # 👉️ ['a', 'b', 'c', 'd']
我们使用列表理解来迭代列表。
列表推导用于对每个元素执行一些操作,或者选择满足条件的元素子集。
str.split ()
方法使用定界符将字符串拆分为子字符串列表。
该方法采用以下 2 个参数:
姓名 | 描述 |
---|---|
分隔器 | 在每次出现分隔符时将字符串拆分为子字符串 |
最大分裂 | 最多maxsplit 完成拆分(可选) |
我们传递1
的maxsplit
参数仅拆分一次字符串并获取第一项。
如果您需要在每次出现分隔符时拆分字符串,请删除对str.split()
.
主程序
# 👇️ ['a', 'b.c.d'] print('a.b.c.d'.split('.', 1)) # 👈️ with maxsplit set to 1 # 👇️ ['a', 'b', 'c', 'd'] print('a.b.c.d'.split('.')) # 👈️ without maxsplit
第二个示例将列表中的每个元素拆分为嵌套列表。
主程序
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list into nested lists result_2 = [item.split('-') for item in my_list] print(result_2) # 👉 [['a', '1'], ['b', '2'], ['c', '3'], ['d', '4']]
您还可以在拆分每个字符串后展平列表。
主程序
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list and flatten list result_3 = [item.split('-') for item in my_list] result_3_flat = [item for l in result_3 for item in l] print(result_3_flat) # 👉️ ['a', '1', 'b', '2', 'c', '3', 'd', '4']
该result_3
变量是一个二维列表,因此我们不得不使用另一个列表推导式来展平它。
您可以通过使用for
循环获得相同的结果。
主程序
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split each element in list and flatten list result_3 = [item.split('-') for item in my_list] print(result_3) # 👉️ [['a', '1'], ['b', '2'], ['c', '3'], ['d', '4']] result_3_flat = [] for l in result_3: for item in l: result_3_flat.append(item) # 👇️ ['a', '1', 'b', '2', 'c', '3', 'd', '4'] print(result_3_flat)
我们使用嵌套for
循环来展平列表列表。
外for
循环用于迭代二维列表。
为了访问嵌套列表中的项目,我们需要一个嵌套循环。
for
在每次迭代中,我们将每个列表项附加到一个空列表中。
如果需要拆分列表项,请在调用该split()
方法之前访问特定索引处的列表。
主程序
my_list = ['a-1', 'b-2', 'c-3', 'd-4'] # ✅ split specific element in list result_4 = my_list[0].split('-') print(result_4) # 👉️ ['a', '1'] print(result_4[0]) # 👉️ a print(result_4[1]) # 👉️ 1 # 👇️ ['b', '2'] print(my_list[1].split('-'))
Python 中的索引从零开始,因此列表中的第一项的索引为
0
,第二项的索引为,依此类推1
。