繁体   English   中英

为什么下面的代码不产生任何 output?

[英]Why doesn't the code below produce any output?

有两个代码片段,上一个有效,而下一个无效。 为什么第二个代码片段 output 什么都没有?

#This code works:
x=["Decomplete asd"]
y=[]
z=[]
for i in x:
    if "De" in i:
        y.append(i)
        print(y)
    if "comp" in i:
        z.append(i)
        print(z)

# This one does not:
x=["Decomplete asd"]
y=[]
z=[]
if "De" in x:
    y.append(x)
    print(y)
if "comp" in x:
    z.append(x)
    print(z)

欢迎尼卡萨斯!

那是因为 X 是一个包含一个字符串的列表 但是 x 本身并不是一个字符串。

所以:

  • 在第一种情况下,我获取此列表中每个项目的值(因为此列表的长度 = 1,循环将很快完成)。 所以当 i = "Decomplete asd",它是一个字符串时,条件为真: "De" 和 "comp" 在这个字符串中。

  • 在第二种情况下,条件直接适用于 x。 x 是一个列表,而不是一个字符串。 这意味着您正在一个不包含它们的列表中寻找字符串“De”和“comp”作为项目。

例如,如果您有x = ["De", "comp", "hello"] ,它将起作用。

或者如果你有x = "Decomplete asd" (即一个字符串,没有[] )。

希望它有所帮助!

for 循环下面的代码只检查一次所需内容。

该代码在每个实例上添加每个字符串。 基本上,在代码遍历集合的每个部分之前,顶级代码不会停止查找。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM