我是新手,正在使用 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
),我宁愿不回来打扰你。
要将双字符序列转换为数组中的单个字符,可以使用字符串类的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