
python字符串处理问题
strip函数只能去除首尾字符,不能去掉中间字符
strip函数没有副作用,也就是返回值才是去掉后的字符串
更简洁的写法left = ''.join([c for c in password if c in symbols])
错误一:字符串对象不可以修改,strip()返回的是一个新字符串对象,而原来的对象password不变。
错误二:strip()函数的作用是移除字符串头尾指定的字符,对中间的字符无效。
错误三:在遍历字符串的过程中又改变了字符串的长度,将会导致x定位错误。
修正你的程序:
cleaned_password = ''
for x in range(0, len(password)):
for i in symbols:
if password[x] == i:
break
else:
cleaned_password += password[x]
print(cleaned_password)
但是,这个程序本身效率低下,完全可以用一行代码完成同样的工作:
password = ''.join(filter(lambda x: x in symbols, password))
那如果我同时要判断password中是否有与symbols重复的元素怎样比较简洁
比较上面那行代码得到的结果与原始的password字符串是否相同即可。
2019-08-15 · 知道合伙人软件行家
