gpt4 book ai didi

python - 如何根据条件根据另一个相同长度的嵌套列表将列表中的项目替换为空字符串

转载 作者:行者123 更新时间:2023-12-04 02:29:42 24 4
gpt4 key购买 nike

我有一个如下的标题列表:

h_list = ['h1','h2','h3','h4','h5']

现在我有数据列表(嵌套):

d_list = [
[1, None, 3, ' ', 5],
[1, ' ', 2, ' ', 9]
]

两个列表每次都具有相同的长度,所以我想在相同索引位置的每个嵌套列表列表中匹配,如果它的所有对应值都是 None' ',然后将 h_list 中的项目替换为 ' '(空字符串)

我的预期输出是:

h_list = ['h1',' ','h3',' ','h5']

最佳答案

尝试列表理解:

h_list = ['h1','h2','h3','h4','h5']


d_list = [
[1, None, 3, ' ', 5],
[1, ' ', 2, ' ', 9]
]

empty = [' ', None]
h_list = [' ' if any(b[i] in empty for b in d_list) else v for i, v in enumerate(h_list)]
print(h_list)

输出:

['h1', ' ', 'h3', ' ', 'h5']

分解这部分代码:

h_list = [' ' if any(b[i] in empty for b in d_list) else v for i, v in enumerate(h_list)]

首先,让我们只有

[(i, v) for i, v in enumerate(h_list)]

上面将是 h_list 中每个元素的索引和值的列表。

现在,我们使用 if 语句来确定何时添加 ' '。首先,我们需要识别any()功能:

any(b[i] in empty for b in d_list)
如果 d_list 中索引 i 处的 任何 数组在 empty 中,则返回 True 列表。我们希望 None' ' 对于 h_list 中的所有字符串,其索引返回 ' 'None 用于 d_list 中的任何列表,因此:

[' ' for i, v in enumerate(h_list) if any(b[i] in empty for b in d_list)]

最后,如果not any(b[i] in empty for b in d_list),我们要使用原始字符串。为此,我们使用 else 语句 (请注意,使用 else 时,语句会移到 for 的左侧循环。):

h_list = [' ' if any(b[i] in empty for b in d_list) else v for i, v in enumerate(h_list)]

关于python - 如何根据条件根据另一个相同长度的嵌套列表将列表中的项目替换为空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65025042/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com