Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 替换列表列表中的值_Python_Python 3.x_Replace - Fatal编程技术网

Python 替换列表列表中的值

Python 替换列表列表中的值,python,python-3.x,replace,Python,Python 3.x,Replace,Python 3。视窗10 我有一个分层列表,我想用指定的值更改它们的值 例如:我有分层列表 l = [[[0, 4], 1], [2, 3], 5]] 我有一本字典 {0: 'da-1.txt', 1: 'da-2.txt', 2: 'en-1.txt', 3: 'en-2.txt', 4: 'it-1.txt', 5: 'it-2.txt'} 我希望在不破坏列表层次结构的情况下,用字典的值相应地替换列表的值 输出应如下所示: l = [[['da-1.txt', 'it-1.t

Python 3。视窗10

我有一个分层列表,我想用指定的值更改它们的值

例如:我有分层列表

l = [[[0, 4], 1], [2, 3], 5]]
我有一本字典

{0: 'da-1.txt',
 1: 'da-2.txt',
 2: 'en-1.txt',
 3: 'en-2.txt',
 4: 'it-1.txt',
 5: 'it-2.txt'}
我希望在不破坏列表层次结构的情况下,用字典的值相应地替换列表的值

输出应如下所示:

l = [[['da-1.txt', 'it-1.txt'], 'da-2.txt'], ['en-1.txt', 'en-2.txt], 'it-2.txt']

您可以浏览列表,检查每个元素是否为列表。如果不存在,则将其替换为字典中相应的元素(如果存在)。如果是,则递归应用相同的算法:

def rec_replace(l, d):
    for i in range(len(l)):
        if isinstance(l[i], list):
            rec_replace(l[i], d)
        else :
            l[i] = d.get(l[i], l[i])
注意:

此实现是对列表元素的就地替换。或者,也可以使用类似的方法返回一个新列表。

您要用哪种语言来完成此任务?Ofc。Python 3。对不起,这是我的第一篇帖子。非常感谢。正是我想要的。