我查看了我的书和文档,并做了这个:
a = "hello"
b = a.split(sep= ' ')
print(b)
我得到一个错误,说split()不带关键字参数。有什么问题?
我希望['h','e','l','l','o'] 我试着不通过sep而只是a.split(''),并且得到['hello']
答案 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)