boolean login = false;
while (read.nextLine() !=null) {
String user = read.next();
String pass = read.next();
read.next();
if(usernameT.getText().equals(user) && passwordT.getText().equals(pass)) {
login = true;
break;
}
}
if (login) {
new Menu();
} else {
JOptionPane.showMessageDialog(null, "Incorrect username or password");
usernameT.setText("");
passwordT.setText("");
}
我运行上面的代码片段我得到了不同的结果。
for循环输出为animals = ['lion' ,'tiger', 'lepord', 'cheetah', 'cat']
find = []
for name in animals:
if name == 'lion':
find.append(name)
print (find)
find = [find.append(name) for name in animals if name=='lion']
print (find)
而
列表理解是['lion']
。
在我看来,for循环和列表理解应该产生相同的结果。但事实并非如此。请帮我找到原因。
答案 0 :(得分:1)
None
来自列表方法append
,返回None
。
而不是像以下那样调用append
:
[find.append(name) for name in animals if name=='lion']
写:
[name for name in animals if name=='lion']