You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中按元素内的分隔符将列表拆分为两个子列表

拆分带/分隔符的Python列表元素为两个独立列表

嘿,这事儿好办!我给你分享几个实用的Python实现方式,都是日常处理这类字符串拆分需求常用的方法:

方法1:普通循环(直观易懂,适合新手)

这种写法逻辑最清晰,一步步拆分添加,容易理解和调试:

my_list = ['owner/NN', 'is/VBZ', 'pleasant/JJ', 'and/CC', 'entertaining/JJ', './.']
my_list_1 = []
my_list_2 = []

for item in my_list:
    # 按/拆分每个元素,得到两个部分
    part1, part2 = item.split('/')
    my_list_1.append(part1)
    my_list_2.append(part2)

print(my_list_1)  # 输出: ['owner', 'is', 'pleasant', 'and', 'entertaining', '.']
print(my_list_2)  # 输出: ['NN', 'VBZ', 'JJ', 'CC', 'JJ', '.']

注意:如果你的列表里存在不包含/的元素,split('/')会返回长度为1的列表,这时候解包成part1, part2会报错。不过根据你的示例数据,所有元素都符合格式,所以完全没问题。

方法2:zip+生成器表达式(简洁Pythonic写法)

想要一行搞定拆分?用这个方法准没错,非常符合Python的风格:

my_list = ['owner/NN', 'is/VBZ', 'pleasant/JJ', 'and/CC', 'entertaining/JJ', './.']
# 用生成器表达式遍历拆分每个元素,再用zip聚合对应位置的部分
my_list_1, my_list_2 = zip(*(item.split('/') for item in my_list))

# zip返回的是元组,如果需要列表类型,转一下就行
my_list_1 = list(my_list_1)
my_list_2 = list(my_list_2)

print(my_list_1)
print(my_list_2)

这里的*是解包操作,把生成器里的每个拆分结果(比如['owner', 'NN'])作为独立参数传给zip,zip会自动把所有第一个元素、第二个元素分别聚合成一组。

方法3:双列表推导式(快速实现)

如果不想写循环,也可以用两个列表推导式分别生成目标列表,代码同样简洁:

my_list = ['owner/NN', 'is/VBZ', 'pleasant/JJ', 'and/CC', 'entertaining/JJ', './.']
my_list_1 = [item.split('/')[0] for item in my_list]
my_list_2 = [item.split('/')[1] for item in my_list]

print(my_list_1)
print(my_list_2)

这种写法直接遍历每个元素,取拆分后的第0位和第1位元素组成新列表,一眼就能看懂逻辑。

内容的提问来源于stack exchange,提问作者bornTalented

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:41:31