Fra*_*cis 11 python string slice
我正在使用Python为我工作的实验室编程.如何切出给定字符串中的每3个字符并将其附加到列表中?
即XXXxxxXXXxxxXXXxxxXXXxxxXXX(其中X或x是任何给定的字母)
string = 'XXXxxxXXXxxxXXXxxxXXXxxxXXX'
mylist = []
for x in string:
string[?:?:?]
mylist.append(string)
Run Code Online (Sandbox Code Playgroud)
我希望列表看起来像这样:['XXX','xxx','XXX','xxx','XXX'......等等]
有任何想法吗?
Dav*_*ver 20
总之,你不能.
更长的时间,你需要编写自己的函数,可能:
def split(str, num):
return [ str[start:start+num] for start in range(0, len(str), num) ]
Run Code Online (Sandbox Code Playgroud)
例如:
>>> split("xxxXXX", 3)
['xxx', 'XXX']
>>> split("xxxXXXxx", 3)
['xxx', 'XXX', 'xx']
将列表分成3个块并将字符串分成3个块的区别在于re模块使用字符串而不是列表.
如果性能很重要(即您要分割数千个字符串),则应测试各种答案在应用程序中的比较方式
>>> import re
>>> re.findall('...','XXXxxxXXXxxxXXXxxxXXXxxxXXX')
['XXX', 'xxx', 'XXX', 'xxx', 'XXX', 'xxx', 'XXX', 'xxx', 'XXX']
>>> chunksize=3
>>> re.findall('.{%s}'%chunksize,'XXXxxxXXXxxxXXXxxxXXXxxxXXX')
['XXX', 'xxx', 'XXX', 'xxx', 'XXX', 'xxx', 'XXX', 'xxx', 'XXX']
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为.在正则表达式中"匹配任何字符".
.{3}表示"匹配任意3个字符",依此类推
| 归档时间: |
|
| 查看次数: |
17844 次 |
| 最近记录: |