Python 3. Windows 10.
我有一个分层列表,我想用指定的值更改它们的值。
例如:我有分层列表
{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']
我想在不破坏列表层次结构的情况下,相应地将列表的值替换为字典的值。
输出应该是这样的:
using System;
namespace EuroMonitorTest
{
class MainClass
{
public static void Main(string[] args)
{
int answer = 5;
Console.WriteLine("Please enter a number less then 5");
int value = Convert.ToInt32(Console.ReadLine());
if (value <= answer)
{
Console.WriteLine("The number required to get to 5 is " + (answer - value));
}
else if (value > answer)
{
Console.WriteLine("That number is over 5, Try Again");
}
Console.ReadKey();
}
}
}
答案 0 :(得分:0)
您可以查看列表,并检查每个元素是否为列表。如果不是,请将其替换为字典的相应元素(如果存在)。如果是,则递归地应用相同的算法:
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])
注意:强>
此实现是列表元素的就地替换。或者,也可以使用类似的方法返回新列表。