有什么方法可以仅使用指定的元素来更新列表列表?

问题描述

有什么方法可以仅使用指定的元素来更新列表的列表(在这种情况下为4)? 例如:

list1 = [['a','b','c'],['a','a','c']]
list2 = [['b',['b','a']]
list3 = [['c','c','a'],'b']]
list4 = [['c','b']]

如果我想用字符串'b'更新 list1 ,它应该输出:

[[[b,b,b,c],[b,a,b,b]]

因此,从列表1内的 第一个列表 中,第一个元素'a'被替换为'b ',因为其他列表包含字符串'b'(在本例中为list2)。但是,最后一个元素'c'并未更新,因为没有列表包含字符串'b'

我尝试了嵌套多个for循环,但是效率极低。

for list in list1:
  for i in list:
      if i != 'b':
          for list in list2:
              for j in list:
                  if j == b:
                      i = 'b'

我要存档的是:如果其他列表中有“ b”,请将list1中的元素更新为“ b”

解决方法

您可以使用enumerate遍历数组,查看是否有其他列表包含指定的元素(在您的情况下为'b'),并更新其中的任何元素。

for v,a in enumerate(list1):
    for v1,b in enumerate(a):
        if 'b' in [i[v][v1] for i in [list2,list3,list4]]:
            list1[v][v1] = 'b'

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...