鱼C论坛

 找回密码
 立即注册
查看: 3090|回复: 5

[已解决]python:字符串split()方法

[复制链接]
发表于 2018-10-18 23:53:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
>>> str2 = '_'.join("FishC")

>>> str2
'F_i_s_h_C'

>>> str2.split(sep='_')
['F', 'i', 's', 'h', 'C']



以上是小甲鱼python零基础书中P43的一段代码,留意这里加粗加背景色的部分。

而实际上这样写,运行后也是一样的效果:

>>> str2.split('_')
['F', 'i', 's', 'h', 'C']


两者有区别吗?

——————————————————
以下是我自己做练习打的代码,都没用到sep=

>>> str = 'I love this game!'

>>> str.split()
['I', 'love', 'this', 'game!']

>>> str.split('e', 1)
['I lov', ' this game!']

>>> str.split('e', 2)
['I lov', ' this gam', '!']
最佳答案
2018-10-19 00:00:19
不用写 sep,默认的 sep 是空格。sep 是 separator 的简写(分割符)
>>> str.split()
['I', 'love', 'this', 'game!']

如果说你把参数的顺序颠倒,那么要写 sep
str.split('e', 1) == str.split(1, sep='e')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-10-19 00:00:19 | 显示全部楼层    本楼为最佳答案   
不用写 sep,默认的 sep 是空格。sep 是 separator 的简写(分割符)
>>> str.split()
['I', 'love', 'this', 'game!']

如果说你把参数的顺序颠倒,那么要写 sep
str.split('e', 1) == str.split(1, sep='e')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-19 09:06:04 | 显示全部楼层
本帖最后由 hhzczy 于 2018-10-19 09:08 编辑
claws0n 发表于 2018-10-19 00:00
不用写 sep,默认的 sep 是空格。sep 是 separator 的简写(分割符)
>>> str.split()
['I', 'love', 'th ...


似乎和你说的不一样哦,我刚刚试了一下:

>>> str = 'I love this game!'

>>> str.split('e', 2)
['I lov', ' this gam', '!']  #正常

>>> str.split(sep='e')
['I lov', ' this gam', '!']  #正常

>>> str.split(sep = 'e', 2)
SyntaxError: positional argument follows keyword argument

>>> str.split(2, sep='e')
Traceback (most recent call last):
  File "<pyshell#232>", line 1, in <module>
    str.split(2, sep='e')
TypeError: argument for split() given by name ('sep') and position (1)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-19 23:50:48 From FishC Mobile | 显示全部楼层
是呢  为啥呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-20 08:54:54 | 显示全部楼层
本帖最后由 wwhywhy 于 2018-10-20 08:58 编辑

1) str.split(sep='e', 2)
SyntaxError: positional argument follows keyword argument
2) str.split(sep='e', maxsplit=2)
['I lov', ' this gam', '!']
3) str.split(sep='e')
['I lov', ' this gam', '!']
所以如果要写参数,就要都写参数,不能只写一个。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-20 09:25:10 | 显示全部楼层
wwhywhy 发表于 2018-10-20 08:54
1) str.split(sep='e', 2)
SyntaxError: positional argument follows keyword argument
2) str.split( ...

明白了,非常感谢。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 20:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表