我在python中拆分字符串的方式有什么问题?

时间:2010-10-10 03:22:17

标签: python split

我查看了我的书和文档,并做了这个:

a = "hello"
b = a.split(sep= ' ')
print(b)

我得到一个错误,说split()不带关键字参数。有什么问题?

我希望['h','e','l','l','o'] 我试着不通过sep而只是a.split(''),并且得到['hello']

4 个答案:

答案 0 :(得分:6)

Python允许一个名为“关键字参数”的概念,您可以在其中告诉您在调用函数时传递的参数。但是,标准split()函数不接受此类参数。

要将字符串拆分为字符列表,请使用list()

>>> a = "hello"
>>> list(a)
['h', 'e', 'l', 'l', 'o']

另外,关键字参数的示例可能是:

def foo(bar, baz=0, quux=0):
    print "bar=", bar
    print "baz=", baz
    print "quux=", quux

您可以通过几种不同的方式调用此功能:

foo(1, 2, 3)
foo(1, baz=2, quux=3)
foo(1, quux=3, baz=2)

注意如何更改关键字参数的顺序。

答案 1 :(得分:4)

尝试:

a = "hello"
b = a.split(' ')
print(b)

注意区别:a.split(' ')而不是a.split(sep=' ')。尽管文档将参数命名为“sep”,但这仅仅是出于文档目的。它实际上不接受关键字参数。

回应OP对此帖的评论:

"a b c,d e".split(' ')将“a b c,d e”分隔成一个字符串数组。找到的每个''被视为分隔符。所以分隔的字符串是["a", "b", "c,d", "e"]"hello".split(' ')每次看到空格时都会分开“你好”,但“hello”中没有空格

如果您想要一组字母,请使用list comprehension[letter for letter in string],例如[letter for letter in "hello"],或者只使用list中的list("hello")构造函数。

答案 2 :(得分:2)

给定一个字符串x,将它分成单个字符的Pythonic方法是:

for c in x:
    print c

如果你绝对需要一个清单,那么

redundant_list = list(x)

我将列表冗余称为字符串拆分为字符列表并不简洁,并且通常反映C受影响的字符串处理模式。

答案 3 :(得分:0)

尝试:

a = "hello"
b = list(a)