我是Python新手,只是在努力工作,因为团队中的另一个人离开了,需要在线上工作,所以如果这是一个愚蠢的问题,请道歉.
我需要从列表中删除项目(它们将包含某个短语)并使用Google搜索并尝试了一些方法,但它似乎不起作用.
我目前得到的是,
def get_and_count_card_files(date):
# Retrieve the DC and SD card files
dc_files = dc_card_files.get_dc_files(dc_start_location, date)
sd_files = sd_card_files.get_sd_files(sd_start_location)
print(dc_files)
if '*NoCover*' in dc_files:
dc_files.remove('*NoCover*')
Run Code Online (Sandbox Code Playgroud)
Dc_files是列表(文件名串),我需要删除文件名中包含NoCover的任何内容.它确实存在,因为打印功能告诉我它.
任何人都知道我做错了什么
使用这段代码,*不会在这些上下文中执行glob或正则表达式:
if '*NoCover*' in dc_files:
dc_files.remove('*NoCover*')
Run Code Online (Sandbox Code Playgroud)
所以最好说:
if 'NoCover' in dc_files:
Run Code Online (Sandbox Code Playgroud)
但是,我们必须在列表中找到要删除的正确条目,而不使用通配符.
对于一个小列表,您可以迭代它.列表理解会做:
new_dc_files = [dc for dc in dc_files if 'NoCover' not in dc]
Run Code Online (Sandbox Code Playgroud)
这是一种紧凑的说法:
new_dc_files = list()
for dc in dc_files:
if 'NoCover' in dc:
continue
new_dc_files.append(dc)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2087 次 |
| 最近记录: |