gpt4 book ai didi

python - 根据另一个字符串列表(例如黑名单字符串)从字符串列表中每个元素的末尾删除字符

转载 作者:行者123 更新时间:2023-12-03 13:36:15 25 4
gpt4 key购买 nike

我有一本字典,其中包含许多键“样本”的唯一字符串值。我正在将此关键“样本”转换为用于绘图的列表,但是我想生成另一个具有相同数量元素的列表,这些元素在每个元素的末尾去除某些字符串以生成一个“干净”的列表,然后可以将其分组样本一起绘制。例如,我的黑名单如下所示:

blacklist = ['_001', '_002', '_003', '_004', '_005', '_006', '_007', '_008', '_009', \
'_01', '_02', '_03', '_04', '_05', '_06', '_07', '_08', '_09', \
'_1', '_2', '_3', '_4', '_5', '_6', '_7', '_8', '_9']

我想从我的字典生成的这个示例列表中的每个项目中删除它:
sample = [(d['sample']) for d in my_stats]
sample
['sample_A', 'sample_A_001', 'sample_A_002', 'my_long_sample_B_1', 'other_sample_C_08', 'sample_A_03', 'sample1_D_07']

具有新列表的所需结果:
sample
['sample_A', 'sample_A', 'sample_A', 'my_long_sample_B', 'other_sample_C', 'sample_A', 'sample1_D']

对于上下文,我知道会有一些元素是相同的——我想使用这个列表来编译一个数据框,并结合具有相等数量的值的列表,从这个字典中生成的其他键将用作id 绘图(即,我可以使用它对所有这些值进行分组/着色相同)。请注意,可能有不同数量的下划线,并且我的字符串列表中可能有一些元素不包含黑名单中的任何值(例如,这就是为什么我不能在最后一个下划线上使用某些 split 变体的原因)。

这类似于这个问题:
How can I remove multiple characters in a list?

但我不希望它如此泛化/贪婪,并且理想情况下希望只从末尾删除它,因为用户可能在内部有一个包含这些字符串部分(例如 sample1_D 中的 1)的输入文件。如果有其他解决方案,我不一定需要使用黑名单,这似乎是最简单的方法。

最佳答案

使用 regex .

import re

pattern = '|'.join(blacklist)
[re.sub(pattern+'$', '', x) for x in sample]

输出 :
['sample_A',
'sample_A',
'sample_A',
'my_long_sample_B',
'other_sample_C',
'sample_A',
'sample1_D']

关于python - 根据另一个字符串列表(例如黑名单字符串)从字符串列表中每个元素的末尾删除字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58383992/

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