gpt4 book ai didi

python - 在 for 循环中使用 str.replace 将非字母数字字符替换为星号

转载 作者:行者123 更新时间:2023-12-01 00:29:36 25 4
gpt4 key购买 nike

我正在尝试使用 str.replace 方法重写第 5-8 行,仅用 2 行

s = 'pa55w-r@'
result = ''
for c in s:
if(c not in 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'):
result += '*'
else:
result += c
print(result)

以下是我到目前为止所得到的。

s = 'pa55w-r@'
result = ''
for c in s:
if(c not in 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'):
result = s.replace(c,"*")
print(result)

但是,我不确定为什么输出是

pa55w-r*

而不是

pa55w*r*

原代码有哪些?我尝试与 Using str.replace in a for loop 上的另一个示例进行比较,但建议是添加一条 else 语句,我实际上已删除该语句以将代码从 3 行压缩为 2 行。任何输入将不胜感激

啊,我差点忘了提一下,我无法使用正则表达式方法,这似乎是我迄今为止在整个 stackoverflow 中搜索提示期间看到的常见答案。

最佳答案

问题是结果变量只看到一个替换 channel 。解决方法是对 s 进行连续赋值,使其越来越接近预期结果:

s = 'pa55w-r@'
for c in s:
if(c not in 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'):
s = s.replace(c,"*")
print(s)

输出:

pa55w*r*

关于python - 在 for 循环中使用 str.replace 将非字母数字字符替换为星号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58280294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com