python - 列表内的映射转换

标签 python python-3.x list

这是用于输入的 mylist 示例:

mylist = [['RWILY MORSHED', 7670315350025, 'August/2014, Iulie/2014, Septembrie/2014', 1620, 1620], ['AL BADRI MOHAMMED YAHYA TAWFEEQ', 7700119350028, 'Martie/2015, Aprilie/2015, Februarie/2015', 1620, 1620]]

我想要的输出是这样的:

mylist = [['RWILY MORSHED', 7670315350025, 'August 2014, July 2014, September 2014', 1620, 1620], ['AL BADRI MOHAMMED YAHYA TAWFEEQ', 7700119350028, 'March 2015, April 2015, February 2015', 1620, 1620]]

基本上我想将月份名称从罗马尼亚语转换为英语并获得上述所需的输出(我需要所有月份都在与输出相同的索引 2 位置)!

最后我得到了这个:

conversionsEnNames = {"Ianuarie": "January", "Februarie": "February","Martie": "March", "Aprilie": "April","Mai": "May","Iunie": "June", "Iulie": "July","August": "August", "Septembrie": "September","Octombrie": "October", "Noiembrie": "November","Decembrie": "December"}

for i in mylist:
    i[2]=i[2].replace("/", " ")
    for j in i:
        if j in conversionsEnNames:
            j = conversionsEnNames[j]
            i[2]=j

print(mylist)

但这会打印:

[['RWILY MORSHED', 7670315350025, 'August 2014, Iulie 2014, Septembrie 2014', 1620, 1620], ['AL BADRI MOHAMMED YAHYA TAWFEEQ', 7700119350028, 'Martie 2015, Aprilie 2015, Februarie 2015', 1620, 1620]]

并且可以肯定的是,自从 'Iulie 2014' != 'Iulie' 以来, map 将无法工作,因此它可以将其转换为 July,我要修改什么以实现我的期望输出?非常感谢您的宝贵时间!

最佳答案

应该这样做。

for item in mylist:
    item[2] = item[2].replace('/', ' ')
    for roman, english in conversionsEnNames.items():
        item[2] = item[2].replace(roman, english)

关于python - 列表内的映射转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46157331/

相关文章:

python - 如何在 Tornado 中立即发送 GET 响应?

python - 在 linux 和 windows 之间使用 pysftp.get_r 传输文件

python - 将字符串转换为与确切字符串匹配的已编译正则表达式

python - 在 Python 3 中导入 numba 时出错

python - 从 Python 列表中搜索字符串以查找完全匹配项

python - 将字典值分配给变量,其中 key == list[element]

python - 如何区分序列和映射

Python脚本已经编译成exe,但是如何让它不显示命令提示符?

python - 从 pandas dataframe 到 xlwings 的 excel?

python - 从列表python的字符串中获取原始列表