为了账号安全,请及时绑定邮箱和手机立即绑定

字符串替换似乎不起作用

字符串替换似乎不起作用

慕码人8056858 2019-09-26 15:19:16
字符串替换似乎不起作用我最初尝试使用=运算符来赋值,但返回了错误,然后尝试使用string.replace():encrypted_str.replace(encrypted_str[j], dec_str2[k], 2)和encrypted_str.replace(encrypted_str[j], unichr(ord(dec_str2[k]) - 32), 2)但是它正在返回原始价值。提供有关如何正确使用替换API以获得正确结果的帮助。还有其他任何可用的API可以代替unichr()。在encrypted_str正在从用户采取的encrypted_str = raw_input() dec_str2是频率字符为通过用户输入。这个问题几乎不涉及我想知道我是否使用了replcae()错误的API 变量,因为它为我提供了不变的输出,encrypted_str 我们是否可以使用encrypted_str[j] 从字符串中返回一个字符来定义replace()API 的子字符串。我使用encrypted_str.replace(encrypted_str[j], unichr(ord(dec_str2[k]) - 32), 1) 最大替换1而不是2(因为我只需要一个替换)。我需要完成的实际操作将在C中进行,如下所示: encrypted_str[j] = dec_str2[k] -32。因为我是python的新手,所以我正在尝试寻找替代品。
查看完整描述

2 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

Python中的字符串是不可变的。这意味着给定的字符串对象在创建后将永远不会更改其值。这就是为什么像这样的元素分配some_str[4] = "x"将引发异常的原因。

由于类似的原因,str该类提供的任何方法都不能使字符串发生突变。因此,该str.replace方法无法按照我认为的方式工作。而不是就地修改字符串,它返回带有请求的替换的新字符串。

尝试:

encrypted_str = encrypted_str.replace(encrypted_str[j], dec_str2[k], 2)

如果要进行许多这样的替换,将字符串转换为字符列表,一次一个地进行修改,然后str.join在完成后使用该列表再次将其转换为字符串可能是有意义的。


查看完整回答
反对 回复 2019-09-26
?
达令说

TA贡献1821条经验 获得超6个赞

Python字符串是不可变的。这意味着不能按照您的帖子中的方法调用来修改字符串。您必须使用赋值才能使用方法调用中返回的字符串。

例如:

encrypted_str = encrypted_str.replace(encrypted_str[j], dec_str2[k], 2)

现在encrypted_str包含新值。


查看完整回答
反对 回复 2019-09-26
  • 2 回答
  • 0 关注
  • 439 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信