这似乎是一个非常基本的问题,但我想知道,因为这些清单中的项目经常变化,当一个网站被刮.
employees = ['leadership(x)', 'drivers(y)', 'trainers(z)']其中,x,y,z是这些特定角色中雇员的数量,也是经常变化的值。
如果我知道字符串总是“领导力”、“驱动程序”和“培训员”,只是括号之间的不同之处,我如何才能动态删除这些字符串,而不必每周硬编码运行程序呢?
显而易见但不太成功的解决办法是..。
employees = ['leadership(x)', 'drivers(y)', 'trainers(z)']
unwanted = ['leadership(x)', 'drivers(y)', 'trainers(z)']
for i in unwanted:
if i in employees:
employees.remove(i)当然,这是失败的,因为这些值是硬编码的,并且值是一定要更改的,如果有任何帮助的话,我们将非常感激!
发布于 2021-07-09 22:39:05
你可以做这样的事
unwanted_prefixes = ['leadership', 'drivers', 'trainers']
unwanted = [s for s in employees if s.split('(')[0] in unwanted_prefixes]这将使要删除的内容列表包含以这3个前缀开头的任何字符串,或者不包含其他任何内容,或者紧跟在括号后面。
一个更复杂的解决方案,如果删除您想要的字符串,则遵循大致相同的想法,但使用正则表达式:
import re
unwanted_re = re.compile(r'(leadership|drivers|trainers)\(\d+\)')
unwanted = [x for x in employees if unwanted_re.fullmatch(x)]https://stackoverflow.com/questions/68323226
复制相似问题