【发布时间】:2020-12-10 05:41:20
【问题描述】:
我正在努力弄清楚如何将嵌套列表理解与替换混合 这是我尝试转换的嵌套 for 循环的示例
array1 = [[1,2,3],[4,5,6],[7,8,9]]
array2 = [['a','b','c'],[7,4,1]]
for i in array1:
value=i[0]
for val2 in array2[1]:
if value==val2:
#convert i to array2[0][array2[1].index(val2)]
我已经尝试过了,但它只是将所有内容转换为 ['a','b','c']
In [34]: [[x if x == y else array2[0] for y in array2[1]] for x in array1]
Out[34]:
[[['a', 'b', 'c'], ['a', 'b', 'c'], ['a', 'b', 'c']],
[['a', 'b', 'c'], ['a', 'b', 'c'], ['a', 'b', 'c']],
[['a', 'b', 'c'], ['a', 'b', 'c'], ['a', 'b', 'c']]]
我期待的结果是
In[35]:array1
Out[35]:
[['c',2,3],['b',5,6],['a',8,9]]
如果列表理解不是解决问题的最佳方法,我也将不胜感激。我可以这样做,但我认为这不是最有效的方法。
for ii in range(len(array1))
value = array1[ii]
...
array1[ii] = array2[0][array2[1].index(val2)]
【问题讨论】:
标签: python for-loop list-comprehension