我有一个类似的列表:
output=['Filesystem Size Used Avail Use% Mounted on', '/dev/mapper/vg00-lvol_root', ' 976M 356M 570M 39% /', 'tmpfs 1.9G 0 1.9G 0% /dev/shm', '/dev/mapper/vg00-lvol_apps', ' 20G 6.1G 13G 33% /apps', '/dev/sda1 976M 63M 863M 7% /boot', '/dev/mapper/vg00-lvol_data'.....]
我想删除格式为"/dev/mapper/...."
的所有元素。
例如。这里list[1]='/dev/mapper/vg00-lvol_root'
。我尝试使用索引删除(因为在这种情况下奇数no被模式占用。但事实并非如此)。然后我尝试了将元素转换为字符串的逻辑,然后使用正则表达式来查找模式。我想过运行一个for循环来将列表元素提取到单个字符串(所有这些都很复杂)。我确信必须有一种更简单的方法来解决这个问题
答案 0 :(得分:1)
l=['Filesystem Size Used Avail Use% Mounted on', '/dev/mapper/vg00-lvol_root', ' 976M 356M 570M 39% /', 'tmpfs 1.9G 0 1.9G 0% /dev/shm', '/dev/mapper/vg00-lvol_apps', ' 20G 6.1G 13G 33% /apps', '/dev/sda1 976M 63M 863M 7% /boot', '/dev/mapper/vg00-lvol_data']
filtered = [ x for x in l if "/dev/mapper/" not in x ]
print(filtered)
输出:
['文件系统大小已使用可用使用%安装','976M 356M 570M 39% /','tmpfs 1.9G 0 1.9G 0%/ dev / shm','20G 6.1G 13G 33%/ apps', '/ dev / sda1 976M 63M 863M 7%/ boot']
答案 1 :(得分:0)
如果你需要检查多个字符串,你可能需要这个。
regex=re.compile('^/dev/mapper|^/usr/a')
filtered_list = [s for s in my_list if not re.match(regex, s)]