l'L*_*L'l 3 python split tuples strip python-3.x
考虑tuple使用内置方法的基本内容str.startswith():
>>> t = 'x','y','z'
>>> s = 'x marks the spot'
>>> s.startswith( t )
True
Run Code Online (Sandbox Code Playgroud)
当使用元组时,似乎需要一个循环str.strip():
>>> for i in t: s.strip(i)
...
' marks the spot'
'x marks the spot'
'x marks the spot'
Run Code Online (Sandbox Code Playgroud)
这或许似乎很浪费; 是否有更有效的方法来使用元组项目str.strip()?s.strip(t)似乎合乎逻辑,但是,没有bueno.
如果字符串以给定文本开头,则剥离字符串是一种非常不同的测试用法,因此这些方法在处理输入方面存在重大差异.
str.strip()取一个字符串,将其视为一组字符; 字符串将被删除集合中的每个字符; 只要字符串以一个字符作为集合成员的结尾开始,就会删除该起始或结束字符,直到开始和结束都没有给定集合中的任何字符.
如果你有一个元组将它连接成一个字符串:
s.strip(''.join(t))
Run Code Online (Sandbox Code Playgroud)
或者以字符串文字形式传递:
s.strip('xyz')
Run Code Online (Sandbox Code Playgroud)
请注意,这意味着什么不同的使用str.strip()与每个单独的元组元素!
相比:
>>> s = 'yxz_middle_zxy'
>>> for t in ('x', 'y', 'z'):
... print(s.strip(t))
...
yxz_middle_zxy
xz_middle_zx
yxz_middle_zxy
>>> print(s.strip('xyz'))
_middle_
Run Code Online (Sandbox Code Playgroud)
即使您str.strip()使用单个字符链接了调用,它仍然不会产生相同的输出,因为str.strip()调用:
>>> for t in ('x', 'y', 'z'):
... s = s.strip(t)
...
>>> print(s)
xz_middle_zx
Run Code Online (Sandbox Code Playgroud)
因为字符串从未开始或结束,x或者z当这些字符被剥离时; x仅在开始和结束时结束,因为y角色在下一步中被剥离.