从本实例学到什么
- 字符串对象的split方法的用法
实例程序代码
#例4-1-2 用input函数和split方法输入数据
#输入一行字符串
line = input("输入多个整数,用空格隔开:") #line是一个字符串
print("line=", line)
#以空格为分隔符,分割字符串得到数字字符串列表
num_strs = line.split() #num_strs是数字字符串列表
print("num_strs=", num_strs)
#数字字符串列表转换为数字列表
nums = []
for s in num_strs:
nums.append(int(s))
print("nums=", nums)
#输入多个实数,用逗号隔开
line = input("输入多个实数,用逗号隔开:")
#以逗号为分隔符,分割字符串得到数字字符串列表
fnum_strs = line.split(',')
fnums = []
for w in fnum_strs:
fnums.append(float(w))
print("fnums=", fnums)
#输入3个名字存入a, b, c
line = input("输入3个名字:")
#3个元素的列表赋值给3个变量。
#注意左边变量个数和列表元素的个数必须相等,否则报错。
a, b, c = line.split()
print(a, b, c)
运行例4-1-2, 输出以下内容:
输入多个整数,用空格隔开:3 44 8 99
line= 3 44 8 99
num_strs= [‘3’, ‘44’, ‘8’, ‘99’]
nums= [3, 44, 8, 99]
输入多个实数,用逗号隔开:2.5, 7.8, 1.1
fnums= [2.5, 7.8, 1.1]
输入3个名字:Li Guo Huang
Li Guo Huang
上述输出内容中,加粗并斜体的文字是从键盘输入的内容,其余是程序输出的内容。
例4-1-2中,第2到13行示例了在一行中输入多个整数的做法。整数之间用空格分隔。第15到22行示例了在一行中输入多个浮点数的做法。浮点数之间用分号间隔。第24到29行示例了在一行中输入多个字符串的做法。
split方法的用法
调用字符串对象的split方法的写法举例之一:
字符串对象.split()
例4-1-2第6行采用的是上述写法。假设用户输入:3 44 8 99, 第3行代码执行后,line变量的值是:‘3 44 8 99’,这是一个字符串。第6行代码的作用是,先执行split方法,把line字符串分割成4个子串,返回这4个子串组成的列表,即[‘3’, ‘44’, ‘8’, ‘99’],接着把这份列表赋值给num_strs变量。因此,第7行输出的是:num_strs= [‘3’, ‘44’, ‘8’, ‘99’] 。
为什么上述split方法把line字符串分割成4个子串,而不是5个或者3个呢?这是因为,不带参数地调用split函数,split函数将以空格作为间隔符来分割字符串。对于’3 44 8 99’,数字3, 44, 8后面有空格,因此分割成[‘3’, ‘44’, ‘8’, ‘99’] 。
调用字符串对象的split方法的写法举例之二:
字符串对象.split(’,’)
例4-1-2第18行采用的是这种写法。假设用户输入的是: 2.5, 7.8, 1.1,第16行执行后,line变量的值是’2.5, 7.8, 1.1’,这是一个字符串。第18行的作用是,先执行split方法,把line字符串分割成3个子串(以逗号作为分隔符),返回这3个子串组成的列表,即[‘2.5’, ‘7.8’, ‘1.1’] ;接着把这份列表赋值给fnum_strs。
为什么这一次调用split方法,把line分割成3个子串呢?这是因为,以’,‘为参数调用split函数,split函数将以逗号为分隔符来分割字符串。对于’2.5, 7.8, 1.1’,两个逗号作为分隔符,所以分割成了3段,即[‘2.5’, ‘7.8’, ‘1.1’] 。
小结
- 举例说明了split方法的两种用法。
- 字符串对象.split(),是以空格为分隔符,把长串分割成多个子串,返回子串组成的列表。
- 字符串对象.split(’,’),是以逗号为分隔符,把长串分割成多个子串,返回子串组成的列表。
- 字符串对象.split(’-’),是以中划线为分隔符。你可以做类似的推广。