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

Jac*_* S. 7 python split

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

a = "hello"
b = a.split(sep= ' ')
print(b)
Run Code Online (Sandbox Code Playgroud)

我得到一个错误,说split()不带关键字参数.怎么了?

我想要['h','e','l','l','o']我试图不通过sep而只是a.split(''),并得到['你好']

Gre*_*ill 6

Python允许一个名为"关键字参数"的概念,您可以在其中告诉您在调用函数时传递的参数.但是,标准split()函数不采用这种参数.

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

>>> a = "hello"
>>> list(a)
['h', 'e', 'l', 'l', 'o']
Run Code Online (Sandbox Code Playgroud)

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

def foo(bar, baz=0, quux=0):
    print "bar=", bar
    print "baz=", baz
    print "quux=", quux
Run Code Online (Sandbox Code Playgroud)

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

foo(1, 2, 3)
foo(1, baz=2, quux=3)
foo(1, quux=3, baz=2)
Run Code Online (Sandbox Code Playgroud)

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


Pon*_*dle 5

尝试一下:

a = "hello"
b = a.split(' ')
print(b)
Run Code Online (Sandbox Code Playgroud)

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

回应 OP 对这篇文章的评论:

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

如果您想要字母数组,请使用列表理解[letter for letter in string],例如[letter for letter in "hello"],或者只使用list构造函数,如list("hello").