用单个字符替换两个字符序列

问题描述 投票:0回答:1

我是新手,正在使用 Python 处理导入的 Excel 数据集。

我正在寻找一种Python式的方法来将双字符序列转换为整个数组中的单个字符。另外,我正在尝试做相反的事情(一个字符变成两个)。

例如:

File.xlsx["Lexikon"] = ["Maechtig","Schoen","Schluessel","Essen"]

#Pythonic code here

File.xlsx["Lexikon"] = ["Mächtig","Schön","Schlüssel","Eßen"]

老实说,我还没有尝试继续前进,因为尽管我可以使用解决方法,但即使作为一个严格的初学者,我对这种过度劳累的代码也感到不舒服。我希望找到一种通用的方法,这样我就可以用我的大脑将代码应用到其他案例中,而不需要进行任何不必要的查询。

就像,如果字符的顺序不重要(

ie
ei
变成
ī
),或者如果它重要(
rw
变成
g
但不是
wr
),如果我是想改变一个三字符序列(
stl
变成
d
),我宁愿不回来打扰你。

python arrays string replace character
1个回答
0
投票

要将双字符序列转换为数组中的单个字符,可以使用字符串类的replace方法。此方法有两个参数:要替换的旧子字符串和要替换的新子字符串。例如,要将“ae”替换为“ä”,您可以使用:

s = s.replace("ae", "ä")

您可以使用列表理解或 for 循环将此方法应用于数组的每个元素。例如:

# Using list comprehension
File.xlsx["Lexikon"] = [s.replace("ae", "ä").replace("oe", "ö").replace("ue", "ü").replace("ss", "ß") for s in File.xlsx["Lexikon"]]

# Using for loop
for i in range(len(File.xlsx["Lexikon"])):
s = File.xlsx["Lexikon"][i]
s = s.replace("ae", "ä").replace("oe", "ö").replace("ue", "ü").replace("ss", "ß")
File.xlsx["Lexikon"][i] = s

要执行相反的操作,您可以使用相同的方法,但交换参数。例如,要将“ä”替换为“ae”,您可以使用:

s = s.replace("ä", "ae")

您还可以使用列表理解或 for 循环将此方法应用于数组的每个元素。例如:

# Using list comprehension
File.xlsx["Lexikon"] = [s.replace("ä", "ae").replace("ö", "oe").replace("ü", "ue").replace("ß", "ss") for s in File.xlsx["Lexikon"]]

# Using for loop
for i in range(len(File.xlsx["Lexikon"])):
s = File.xlsx["Lexikon"][i]
s = s.replace("ä", "ae").replace("ö", "oe").replace("ü", "ue").replace("ß", "ss")
File.xlsx["Lexikon"][i] = s
© www.soinside.com 2019 - 2024. All rights reserved.