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

如何将数组中的字符串拆分为两个新数组?示例:list1转list2与list3

如何将形如['a/b','c/d','e/f']的数组拆分为两个独立数组?

嘿,这个需求其实挺常见的,我来给你几种Python里实用的实现思路,每种都简单好懂:

方法1:列表推导式(最简洁的写法)

这是Python开发者最常用的方式,一行代码就能搞定一个数组,非常清爽:

list1 = ['a/b','c/d','e/f']
list2 = [item.split('/')[0] for item in list1]
list3 = [item.split('/')[1] for item in list1]

原理很简单:遍历原数组里的每个字符串,用split('/')把它按斜杠拆成两部分(比如'a/b'会变成['a','b']),然后分别取拆分后的第0位和第1位,组成新的数组。

方法2:用zip()批量拆分(减少一次遍历)

如果你的原数组数据量很大,不想遍历两次,可以先把所有元素拆分好,再用zip()来批量提取:

list1 = ['a/b','c/d','e/f']
# 先把所有元素都拆分好,得到一个二维列表
split_pairs = [item.split('/') for item in list1]
# 用zip转置,把每一对的第一个元素和第二个元素分别打包
list2, list3 = zip(*split_pairs)

注意哦,zip()返回的是元组,如果需要纯列表的话,转一下就好:

list2 = list(list2)
list3 = list(list3)

这种方法只遍历原数组一次,效率会高一点点,适合处理大规模数据。

方法3:普通循环(新手友好,逻辑直观)

如果刚接触Python,想一步步看清过程,用普通循环也完全没问题,逻辑特别清晰:

list1 = ['a/b','c/d','e/f']
list2 = []
list3 = []
for item in list1:
    # 直接把拆分后的两个部分赋值给变量
    first_part, second_part = item.split('/')
    list2.append(first_part)
    list3.append(second_part)

就是逐个处理每个元素,拆分完直接加到对应的新数组里,调试起来也方便。

小提醒

要确保原数组里的每个元素都恰好有一个斜杠,不然split('/')返回的列表长度不是2,会报错。如果有格式不确定的情况,可以加个判断兜底:

for item in list1:
    parts = item.split('/')
    if len(parts) == 2:
        list2.append(parts[0])
        list3.append(parts[1])
    else:
        # 这里可以根据需求处理,比如跳过或者打印错误
        print(f"元素「{item}」格式不对,跳过处理")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 12:03:14