我有一个列表 A 的列表,看起来像这样
A = [[1, 0, 0],
[1, 1, 1],
[0, 1, 0]]
然后我还有另外两个列表 B 和 C 的列表,如下所示:
B = [['a', 'c', 's'],
['y', 'e', 's'],
['u', 'w', 'g']]
C = [['i', 'p', 'u'],
['k', 'l', 'n'],
['h', 'o', 'm']]
我正在尝试执行从 A 到 B 和 C 的映射,并进行值调节:
当'cell'值为1时,引用B中相同位置的值,当为0时,同样引用C。
我试图通过尝试将列表映射到列表来解决问题。但似乎没有任何结果。
如何将 A 映射到 B 和 C,以便生成这样的列表列表?
[['a', 'p', 'u'], # 'a' from B; 'p' from C; 'u' from C
['y', 'e', 's'], # 'y' from B; 'e' from B; 's' from B
['h', 'w', 'm']] # 'h' from C; 'w' from B; 'm' from C
您可以通过先压缩这 3 个列表来一起迭代它们:
[[i if f else j for f, i, j in zip(a, b, c)] for a, b, c in zip(A, B, C)]