首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Python中使用空分隔符拆分字符串

如何在Python中使用空分隔符拆分字符串
EN

Stack Overflow用户
提问于 2013-06-29 21:14:15
回答 5查看 53.7K关注 0票数 42

在python中做some_string.split('')的好方法是什么?此语法会给出错误:

代码语言:javascript
复制
a = '1111'
a.split('')

ValueError: empty separator

我希望获得:

代码语言:javascript
复制
['1', '1', '1', '1']
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-06-29 21:15:17

使用list()

代码语言:javascript
复制
>>> list('1111')
['1', '1', '1', '1']

或者,您可以使用map() (仅限Python2.7):

代码语言:javascript
复制
>>> map(None, '1111')
['1', '1', '1', '1']

时差:

代码语言:javascript
复制
$ python -m timeit "list('1111')"
1000000 loops, best of 3: 0.483 usec per loop
$ python -m timeit "map(None, '1111')"
1000000 loops, best of 3: 0.431 usec per loop
票数 66
EN

Stack Overflow用户

发布于 2013-06-29 21:19:07

可以将字符串直接转换为list

代码语言:javascript
复制
>>> list('1111')
['1', '1', '1', '1']

或者使用列表理解

代码语言:javascript
复制
>>> [i for i in '1111']
['1', '1', '1', '1']

如果要拆分子字符串的长度超过1个符号,则第二种方法非常有用

代码语言:javascript
复制
>>> some_string = '12345'
>>> [some_string[i:i+2] for i in range(0, len(some_string), 2)]
['12', '34', '5']
票数 9
EN

Stack Overflow用户

发布于 2013-06-29 21:59:11

字符串是可迭代的,可以被索引,因此你根本不需要拆分它:

代码语言:javascript
复制
>>> for char in '11111':
...   print char
... 
1
1
1
1
1
>>> '11111'[4]
'1'

你可以通过调用list来“拆分”它,但这并没有太大的区别:

代码语言:javascript
复制
>>> for char in list('11111'):
...   print char
... 
1
1
1
1
1
>>> list('11111')[4]
'1'

因此,只有当您的代码显式地需要一个列表时,才需要这样做。例如:

代码语言:javascript
复制
>>> list('11111').append('2')
>>> l = list('11111')
>>> l.append(2)
>>> l
['1', '1', '1', '1', '1', 2]

这不适用于直接字符串:

代码语言:javascript
复制
>>> l.append('2')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute 'append'

在这种情况下,您需要:

代码语言:javascript
复制
>>> l += '2'
>>> l
'111112'
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17380592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档