Skip to main content
 首页 » 编程设计

python之读取特定字符时拆分字符串

2025年05月04日13davidwang456

我有几个字符串存储在一个文件中,每行一个,如下所示:

dsfsdfsd/mhgjghj 
cvcv/xcvxc 
werwr/erewrwer 
nbmbn/iuouiouio 
... 

如您所见,唯一始终存在的字符是反冲 /,其余字符的组成非常随机。我需要分别存储每一行​​的第一部分和第二部分(即:分别在反冲之前和之后),以便以这样的方式结束:

first_list = [dsfsdfsd, cvcv, werwr, nbmbn, ...] 
secnd_list = [mhgjghj, xcvxc, erewrwer, iuouiouio, ...] 

我可以在 python 中遍历每一行,检查反冲的存在并分别存储该行每一部分的内容。它看起来像这样:

first_list, secnd_list = [], [] 
for line in file: 
    for indx, char in enumerate(line): 
        if char == '/': 
            first_list.append(line[:(indx-1)]) 
            secnd_list.append(line[(indx-1):]) 
            break 

我正在寻找此代码的更漂亮(更 pythonic)版本。

请您参考如下方法:

split() 在这里可能会派上用场:

first_list, secnd_list = [], [] 
for line in file: 
    first, second = line.split('/') 
    first_list.append(first) 
    secnd_list.append(second) 

这里的假设之一是只有一个 / 存在。知道这一点,split('/') 将始终返回元素的 2 元组。如果这个假设是错误的,请尝试 split('/', 1) - 它会将拆分次数限制为 1,从左到右计数。