str.split()如何划分字符串?

时间:2014-03-07 19:01:26

标签: python string methods

line = (' 1.')
print(line.split(), len(line.split()))

这给出了

['1.'] 1

但如果我这样做

for value in line.split():
    val = value
    print(val, len(val))

我得到了

1. 2

检查val给了我

val[0]
'1'
val[1]
'.'

我很困惑为什么“.split()”在第二个例子中从1个索引划分为2个?

2 个答案:

答案 0 :(得分:2)

split()使用空格作为分隔符来划分字符串(多个空格一起只是此方法的un分隔符)。

请参阅:http://docs.python.org/2.7/library/stdtypes.html#str.split

您还可以将所需的分隔符作为参数提供,例如mystr.split(",")将使用逗号作为分隔符来分割mystr

还有第二个参数告诉方法你想要执行多少次拆分。

所以:

mystr = "1 - 2 - 3 - 4"
print(mystr.split()) # split using spaces
print(mystr.split("-")) # split using "-"
print(mystr.split("-",2)) # split using "-" with 2 splits maximum

将产生以下输出:

['1', '-', '2', '-', '3', '-', '4']
['1 ', ' 2 ', ' 3 ', ' 4']
['1 ', ' 2 ', ' 3 - 4']

答案 1 :(得分:0)

  • 当你执行line.split()时,它返回一个包含一个元素的列表 ['1。']
  • 当你遍历line.split( for line.split()中的值)时,变量值是分割结果的每个元素('1。'< / b>不是 ['1。'] )。
  • 然后在字符串中运行 len ,其中包含2个元素(“1”“。”)。