gpt4 book ai didi

python - 如果元组的第一项等于任何给定的字符串,则从列表中删除元组

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

我有一个列表如下:

device = [('nvme2n1',), 
('nvme1n1', '/local'),
('nvme0n1',),
('nvme0n1p1', '/'),
('nvme0n1p128',),
('nvme3n1',)]
我想从这个列表中删除几个包含 nvme1n1 的元组或 nvme0n1p1nvme0n1p128nvme0n1 .
所以最终名单将有
final_device = [('nvme2n1',),('nvme3n1',)]
尝试如下但没有工作并得到错误 "AttributeError: 'tuple' object has no attribute 'startswith'"
for word in devices[:]: 
if word.startswith("nvme0n1","nvme0n1p1","nvme0n1p128"):
devices.remove(word)
有人能帮忙吗?

最佳答案

devices = [('nvme2n1',), ('nvme1n1', '/local'),
('nvme0n1',), ('nvme0n1p1', '/'),
('nvme0n1p128',), ('nvme3n1',)]
devices = [device for device in devices if device[0] not in
(("nvme0n1", "nvme0n1p1", "nvme0n1p128", "nvme0n1"))]
print(devices)
输出
[('nvme2n1',), ('nvme1n1', '/local'), ('nvme3n1',)]
@JamesTollefson 在他们的回答中解决了代码中的特定问题以及如何解决它。这只是不同的,在我看来更好/更清洁的方式来实现你想要的。

关于python - 如果元组的第一项等于任何给定的字符串,则从列表中删除元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64724907/

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