【问题标题】:Replace dictionary values替换字典值
【发布时间】:2023-08-10 06:28:01
【问题描述】:

大家好,我正在尝试编写一个简单的脚本,该脚本接受一个字符串并替换字符串中的每个字母。我尝试做的是为每个值创建一个字典,例如


mydict = {"a":"1", "b":"2"}
我已经尝试了一些for 循环,但到目前为止还没有运气。我的想法是对于字符串中的每个值,用我在字典中的值替换该值。但到目前为止还没有运气。

【问题讨论】:

    标签: python string loops dictionary replace


    【解决方案1】:

    如果您只是用另一个字母替换一个字母,只需使用string.maketransstring.translate

    Here's a pretty simple example of how to use them

    【讨论】:

      【解决方案2】:

      听起来你正在尝试做这样的事情?

      base = "foobar"
      new = ''
      replacements = {
          'o': 1,
          'b': 'x'
      }
      
      for c in base:
          new += str(replacements.get(c, c))
      
      print new
      
      >>> f11xar
      

      反转:

      target = "foobar"
      replacements = {
          'o': '1',
          'b': 'x'
      }
      
      for k,v in replacements.iteritems():
          target = target.replace(k, v)
      
      print target
      

      【讨论】:

      • 有什么办法可以扭转这种情况吗?
      • 嗯,这似乎打印了完全相同的东西。我想在文本之间返回。我尝试弄乱 for 循环并在 target.replace() 中更改 k 和 v 但这似乎并没有解决它。
      • 是的,同样的事情,但它是“反向”的。你将不得不更具体。 “在文本之间返回”对我来说没有意义。你能举例说明你从什么开始以及你想以什么结束吗?
      • 例如,当我运行这个脚本时,我得到f11xar 我怎样才能把 f11xar 变成 foobar?
      • Jmariz:好吧,您可以相应地更改目标和替换变量。不过,在这一点上,我对您实际尝试做的事情感到很困惑。