不知何故,我在Python中做到了这一点,却没有明确了解条件语句是如何工作的(尤其是嵌套在循环中时)。我在设计一个迭代列表的算法时实现了这一点,并以1:1的比例构建了一个新列表
例如:
x = ['test1', 'test2', 'test3']
y = []
for z in x:
if z == #whatever:
y.append(f'{z}{'is good'}'
if z == #whatever:
y.append(f'{z}{'is bad'}'
人们会认为,在循环结束时,y和x的长度都是相同的。事实并非如此,我在我的y
列表中有多个重复,具有不同的条件结果。也就是说,一个元素可能被附加了三次,并在语句中触发了许多不同的条件
所以,我开始测试,变得更加困惑:
import re
regexp = r'webaddy'
regexp2 = r'Web Addy'
zd = ['test', 'webaddy55', 'sss', 'Web Addy:99']
for xc in zd:
if re.match(regexp, xc):
print('This has webaddy' + ' | ' + xc)
if re.match(regexp2, xc):
print('This has Web Addy' + ' | ' + xc)
else:
print("Works" + ' | ' + xc)
我对此的预期输出为:
Works | test
This has webaddy | webaddy55
Works | sss
This has Web Addy | Web Addy:99
实际输出为:
Works | test
This has webaddy | webaddy55
Works | webaddy55
Works | sss
This has Web Addy | Web Addy:99
它怎么可能有5个输出,而列表中只有4个元素?我构造条件句的方式有什么问题?我的印象是,一旦满足了条件,循环就会转到列表中的下一项,这里到底发生了什么
目前没有回答
相关问题 更多 >
编程相关推荐