code I tried:
my_string = """
interface list:
0 - ethx
server: 32x1-33x0 client: 33x1-34x0
networks:
0 - 4cxxxx79-a4f3-4b18-b26b-377xxxx83
cat list:
8 0 "INTEL SSDxxxx20T8 PHLxxP0BGN 01" - snxx, slot: 0-11
10 0 "INTEL SSDPxxx20T8 PHLJ9xxx0BGN 01" - snxx, slot: 0-13"""
a = my_string.split("cat list:", 1)[1]
li = a.split(" ")
mynewlist = [s for s in li if s.isdigit()]
print(mynewlist)
m = [x for x in mynewlist if not ("0" in x)]
print(m)
['8', '0', '10', '0'][' 8 ']预期:output get is ["8"]["8","10"]
实际上你必须改变这一行
从
m = [x for x in mynewlist if not ("0";在x))
[x for x in mynewlist if x!= ' 0 ']
mynewlist = ["8","0","10","0"]
你的代码如果不是("0"在x)将执行True, False, False, False
为什么第三次迭代也是False的意思,"10"也会包含& 0"因此它返回False,因为"10"不会在输出中打印。注意"0";在x中(您的语句)将检查"0";对象是否存在于x中