鱼C论坛

 找回密码
 立即注册
查看: 3277|回复: 1

[已解决]关于字符串strip()这个方法有不懂的地方请赐教

[复制链接]
发表于 2023-1-28 19:22:57 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 weijia910512 于 2023-1-28 19:25 编辑

看了30题的动手题答案,甲鱼用了strip这个方法去判断最终成功解题,这是它的代码
words = ["Twitter", "TOTO", "FishC", "Python", "ASL"]

res = []
for i in words:
    # 由于单词存在大小写,所以这里统一先转换为小写字母
    j = i.lower()
    # 灵活运用 strip() 方法,判断 j 是否所有字符都在键盘的同一行内
    if j.strip("qwertyuiop") == '' or j.strip("asdfghjkl") == '' or j.strip("zxcvbnm") == '':
        res.append(i)

print(res)

''twitter''.strip('qwertyuiop')
这个判断完了给出'',说明单词里的每个元素都被右边的条件找到了,于是都被剔除然后返回''
但是当我用''weijia''.strip('qwertyuiop')的时候,我以为他应该会返回'ja',因为另外四个字符串'weii'都在右边括号里的条件内被找到并且剔除了,可是python给我返回的却是'jia',我就非常纳闷,为啥还给我返回i?这个i不是应该被剔除吗?两个i都能在我定义的筛选了表范围内呀?难道只能筛选一次?第二次出现同样的不剔除?那为啥twiiter这里的两个i都能被剔除?
我自己用IDE试了很多次,确实一头雾水,不知道他的strip的判定依据是什么
最佳答案
2023-1-28 20:16:39
strip()的特点是保留中间,头尾有符合规则的删除,从两头向中间看,两头符合的切去,只要有一个不符合的就开始保留。这样就好理解了。

1

1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-1-28 20:16:39 | 显示全部楼层    本楼为最佳答案   
strip()的特点是保留中间,头尾有符合规则的删除,从两头向中间看,两头符合的切去,只要有一个不符合的就开始保留。这样就好理解了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 08:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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