python - 使用另一个列表的值作为参考替换列表元素的值
问题描述
我有以下 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进行比较,但我不知道这里是否有正确的方法。
解决方案
我不确定我是否完全理解您的要求,但我的输出与您的相同:
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)
推荐阅读
- amazon-web-services - Amazon ECS 任务无法连接到 Amazon RDS
- python - 从图像块中生成概率
- python - 通过 shell 调用 python 时出现模块问题
- c# - 抑制特定查询或上下文的实体框架核心查询日志记录
- javascript - 如何将状态传递给 jsx,在状态改变时渲染和更新?
- powershell - 如何使用 xaml 在 Powershell 中对动态编辑的 TextBlock 进行自动换行?
- java - 我是否从来自套接字的 inputStream 获得格式错误的输入?
- c# - 使用服务器端 Blazor,在连接到 SQL Server 数据库时如何使用 Windows 身份验证模拟用户?
- python - 将子命令添加到多个组
- r - 在 R 中合并没有重复列的 DataFrame