在python中做some_string.split('')
的好方法是什么?此语法会给出错误:
a = '1111'
a.split('')
ValueError: empty separator
我希望获得:
['1', '1', '1', '1']
发布于 2013-06-29 21:15:17
发布于 2013-06-29 21:19:07
可以将字符串直接转换为list
>>> list('1111')
['1', '1', '1', '1']
或者使用列表理解
>>> [i for i in '1111']
['1', '1', '1', '1']
如果要拆分子字符串的长度超过1个符号,则第二种方法非常有用
>>> some_string = '12345'
>>> [some_string[i:i+2] for i in range(0, len(some_string), 2)]
['12', '34', '5']
发布于 2013-06-29 21:59:11
字符串是可迭代的,可以被索引,因此你根本不需要拆分它:
>>> for char in '11111':
... print char
...
1
1
1
1
1
>>> '11111'[4]
'1'
你可以通过调用list来“拆分”它,但这并没有太大的区别:
>>> for char in list('11111'):
... print char
...
1
1
1
1
1
>>> list('11111')[4]
'1'
因此,只有当您的代码显式地需要一个列表时,才需要这样做。例如:
>>> list('11111').append('2')
>>> l = list('11111')
>>> l.append(2)
>>> l
['1', '1', '1', '1', '1', 2]
这不适用于直接字符串:
>>> l.append('2')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute 'append'
在这种情况下,您需要:
>>> l += '2'
>>> l
'111112'
https://stackoverflow.com/questions/17380592
复制相似问题