Tea*_*One 14 python string tuples
我将如何能够采取像一个字符串'aaaaaaaaaaaaaaaaaaaaaaa'
,并将其分成4个长度元组像(aaaa,aaaa,aaaa)
Ash*_*ary 23
>>> import textwrap
>>> s = 'aaaaaaaaaaaaaaaaaaaaaaa'
>>> textwrap.wrap(s, 4)
['aaaa', 'aaaa', 'aaaa', 'aaaa', 'aaaa', 'aaa']
Run Code Online (Sandbox Code Playgroud)
fal*_*tru 12
使用列表理解,生成器表达式:
>>> s = 'aaaaaaaaaaaaaaaaaaaaaaa'
>>> [s[i:i+4] for i in range(0, len(s), 4)]
['aaaa', 'aaaa', 'aaaa', 'aaaa', 'aaaa', 'aaa']
>>> tuple(s[i:i+4] for i in range(0, len(s), 4))
('aaaa', 'aaaa', 'aaaa', 'aaaa', 'aaaa', 'aaa')
>>> s = 'a bcdefghi j'
>>> tuple(s[i:i+4] for i in range(0, len(s), 4))
('a bc', 'defg', 'hi j')
Run Code Online (Sandbox Code Playgroud)
使用正则表达式的另一种解决方案:
>>> s = 'aaaaaaaaaaaaaaaaaaaaaaa'
>>> import re
>>> re.findall('[a-z]{4}', s)
['aaaa', 'aaaa', 'aaaa', 'aaaa', 'aaaa']
>>>
Run Code Online (Sandbox Code Playgroud)
你可以使用石斑鱼食谱:zip(*[iter(s)]*4)
In [113]: s = \'aaaaaaaaaaaaaaaaaaaaaaa\'\n\nIn [114]: [\'\'.join(item) for item in zip(*[iter(s)]*4)]\nOut[114]: [\'aaaa\', \'aaaa\', \'aaaa\', \'aaaa\', \'aaaa\']\nRun Code Online (Sandbox Code Playgroud)\n\n请注意,如果字符串包含空格,则textwrap.wrap可能不会拆分为长度为 4 的字符串:s
In [43]: textwrap.wrap(\'I am a hat\', 4)\nOut[43]: [\'I am\', \'a\', \'hat\']\nRun Code Online (Sandbox Code Playgroud)\n\n石斑鱼食谱比使用更快textwrap:
In [115]: import textwrap\n\nIn [116]: %timeit [\'\'.join(item) for item in zip(*[iter(s)]*4)]\n100000 loops, best of 3: 2.41 \xc2\xb5s per loop\n\nIn [117]: %timeit textwrap.wrap(s, 4)\n10000 loops, best of 3: 32.5 \xc2\xb5s per loop\nRun Code Online (Sandbox Code Playgroud)\n\n石斑鱼配方可以与任何迭代器一起使用,但textwrap只能与字符串一起使用。
| 归档时间: |
|
| 查看次数: |
3500 次 |
| 最近记录: |