我有几个字符串存储在一个文件中,每行一个,如下所示:
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,从左到右计数。
