1 回答
TA贡献1804条经验 获得超2个赞
您可以使用列表推导来迭代从 0 到 8 的数字,并使用 dict 推导生成列表的字典,该字典推导会k根据数字的商和 3 的余数输出可能添加的列表项:
[{k: [a + ('k' if n // 3 + 1 == k and n % 3 == i else '') for i, a in enumerate(l)] for k, l in d.items()} for n in range(9)]
所以给出:
d = {1:['a','b','c'], 2:['e','f','g'], 3:['h','i','j']}
这将返回:
[{1: ['ak', 'b', 'c'], 2: ['e', 'f', 'g'], 3: ['h', 'i', 'j']},
{1: ['a', 'bk', 'c'], 2: ['e', 'f', 'g'], 3: ['h', 'i', 'j']},
{1: ['a', 'b', 'ck'], 2: ['e', 'f', 'g'], 3: ['h', 'i', 'j']},
{1: ['a', 'b', 'c'], 2: ['ek', 'f', 'g'], 3: ['h', 'i', 'j']},
{1: ['a', 'b', 'c'], 2: ['e', 'fk', 'g'], 3: ['h', 'i', 'j']},
{1: ['a', 'b', 'c'], 2: ['e', 'f', 'gk'], 3: ['h', 'i', 'j']},
{1: ['a', 'b', 'c'], 2: ['e', 'f', 'g'], 3: ['hk', 'i', 'j']},
{1: ['a', 'b', 'c'], 2: ['e', 'f', 'g'], 3: ['h', 'ik', 'j']},
{1: ['a', 'b', 'c'], 2: ['e', 'f', 'g'], 3: ['h', 'i', 'jk']}]
添加回答
举报