首页 > 解决方案 > 使用另一个列表的值作为参考替换列表元素的值

问题描述

我有以下 2 个列表

>>> a
['a', 'b', 'c', 'd']
>>> b
['b a d c f g', 'a b b c d f', 'b c d c h']

我想更新/替换b看起来像:

['b a d c var_1 var_2','a b b c d var_1','b c d c var_1']

a中没有出现在b的元素链中的那些关键元素

我正在尝试将b在列表列表中转换为迭代链的每个元素并与a进行比较,但我不知道这里是否有正确的方法。

标签: pythonlist

解决方案


我不确定我是否完全理解您的要求,但我的输出与您的相同:

a = ['a', 'b', 'c', 'd']
b = ['b a d c f g', 'a b b c d f', 'b c d c h']


def replace_sub_b(sub_b):
    bl = sub_b.split()
    index = 0
    rl = []
    for c in bl:
        if c in a:
            rl.append(c)
        else:
            index += 1
            rl.append(f'var_{index}')
    return ' '.join(rl)


new_b = [replace_sub_b(sub_b) for sub_b in b]
print(new_b)

推荐阅读