我对在 python 中实现以下逻辑的方法有点困惑。我需要专家的建议来选择方法。
我必须用某些列中的预定义值替换字符串。 例如
|是分隔符
输入:
ABCD|NewYork|800|TU
XYA|England|589|IA
输出:
QWER|NewYork|800|PL
NHQ|England|589|DQ
预定义字典:
Actual Value : ABCDEFGHIJKLMNOPQRSTUVWXYZ
Replace Value : QWERTYASDFGHNBVCXZOPLKMNHY
所以,如果值为 ABCD,我应该得到 QWER。如果是 TU 那么应该用 PL 替换它。这些值可以是随机的。
我的方法如下
- 阅读一行,然后转到第 1 列
- 读取每个字符并使用替换值进行一一替换
- 转到第 4 列,然后读取每个字符并逐一替换
- 转到下一行,依此类推......
我觉得这可能是糟糕的编码方式。与上述方法相比,还有什么不同的方法吗?请建议一种方法。
不同文件的列可能不同。它应该是动态的
最佳答案
您可以使用str.translate
和 str.maketrans
让您的生活变得更加轻松:
In [1]: fnd = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
...: rpl = 'QWERTYASDFGHNBVCXZOPLKMNHY'
...: trns = str.maketrans(fnd, rpl)
In [2]: 'ABCD'.translate(trns)
Out[2]: 'QWER'
In [4]: 'UV'.translate(trns)
Out[4]: 'LK'
关于python - 将基于列的字符串替换为多个预定义值 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49900511/