python - 点符号字符串操作

标签 python string

有没有办法使用以下方式在 Python 中操作字符串?

对于任何以点表示法存储的字符串,例如:

s = "classes.students.grades"

有没有办法将字符串更改为以下内容:

"classes.students"

基本上,删除直到最后一个期间的所有内容。所以"restaurants.spanish.food.salty"将变为 "restaurants.spanish.food" .

此外,有什么方法可以确定最后一个时期之后的内容吗?我想这样做的原因是我想使用 isDigit() .

所以,如果是 classes.students.grades.0我可以捕获 0不知何故,所以我可以使用带有 isdigit 的 if 语句,并说如果最后一个句点之后的字符串部分(在这种情况下为 0)是数字,则删除它,否则,保留它。

最佳答案

您可以使用 splitjoin一起:

s = "classes.students.grades"
print '.'.join(s.split('.')[:-1])

您在 . 上拆分字符串 - 它会为您提供一个字符串列表,然后您将列表元素连接回用 . 分隔它们的字符串

[:-1] 将从列表中挑选除最后一个以外的所有元素

检查最后一个 之后的内容。:

s.split('.')[-1]

另一种方法是使用 rsplit .它的工作方式与 split 相同,但如果您提供 ma​​xsplit 参数,它将从末尾开始拆分字符串:

rest, last = s.rsplit('.', 1)

'classes.students'
'grades'

您也可以使用re.sub用空字符串替换最后一个 . 之后的部分:

re.sub('\.[^.]+$', '', s)

你问题的最后一部分是用 [] 换行,我建议使用 formatlist comprehension :

''.join("[{}]".format(e) for e in s.split('.'))

它会给你想要的输出:

[classes][students][grades]

关于python - 点符号字符串操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35118265/

相关文章:

ios - 用 isEqual 比较字符串没有运行完整的功能 iOS

java - 从内部类内部访问局部变量

python - 如何使用flask将内容加载到div元素中

python - 由于一维尺寸更好,程序会吐出轴错误,是因为我最终混合了吗?

python - 如何从.txt文件中删除空行

python - 如何从预训练模型保存的h5文件中找到层数?

python - 嵌套列表的组合

c# - 无法将字符串转换为我创建的枚举类型

c++ - 存储 strtok() token 的值?

python - 为什么python2中 '1' == u'1'的结果是True?