我在一个文件中存储了几个字符串,每行一个,如下所示:
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()
可能在这里派上用场:这里的一个假设是只有一个
/
存在。知道这一点,split('/')
将始终返回一个2元组的元素。如果这个假设是错误的,请尝试split('/', 1)
,它将分割数限制为1,从左到右计数。你知道吗除了
str.split
之外,您还可以使用str.partition
:另一种功能更强大的oneliner:
两个选项中
_
的解释-str.partition
返回一个元组:(first_part, seperator, last_part)
。在这里,我们不需要分隔符(事实上,我无法想象您为什么需要分隔符),所以我们将它赋给一次性变量_
。你知道吗Here是
str.partition
的文档,here是str.split
的文档。你知道吗相关问题 更多 >
编程相关推荐