我的清单如下:
device = [('nvme2n1',),
('nvme1n1', '/local'),
('nvme0n1',),
('nvme0n1p1', '/'),
('nvme0n1p128',),
('nvme3n1',)]
我想从包含nvme1n1
或nvme0n1p1
或nvme0n1p128
或nvme0n1
的列表中删除几个元组
因此,最终的名单将有
final_device = [('nvme2n1',),('nvme3n1',)]
按以下方式尝试,但不起作用&;获取错误"AttributeError: 'tuple' object has no attribute 'startswith'"
for word in devices[:]:
if word.startswith("nvme0n1","nvme0n1p1","nvme0n1p128"):
devices.remove(word)
有人能帮忙吗
输出
@JamesTollefson在他们的回答中指出了代码中的特定问题以及如何解决它。这是完全不同的,在我看来,更好/更干净的方式来实现你想要的
在
devices
列表中迭代的word
是元组。您需要访问您感兴趣的元组的该部分,如下所示:您甚至可以使用列表理解来简化它。 正如James在回答中提到的,您需要执行
word[0]
,因为word
是一个元组而不是字符串startswith
可以使用元组进行检查但是如果你想找到精确的匹配,你可以
相关问题 更多 >
编程相关推荐