马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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的判定依据是什么
strip()的特点是保留中间,头尾有符合规则的删除,从两头向中间看,两头符合的切去,只要有一个不符合的就开始保留。这样就好理解了。
|