Python 为什么所提供程序的输出会打印“文件”;1:1,2:1,3:2,-1:1“;而不是",;0:2,1:1,2:1,3:2,-1:1;?
下面是提供的代码。我自己测试了一些东西。我了解到,如果我在(L中的I)之后添加一个print(I),它将打印零,但是如果我在(I:)之后添加print(I),那么它不会打印零。我已经在网上和我的课本上搜索过了,但我自己无法解释这一点。“如果我:”和“如果我:”到底是做什么的?任何帮助都会很好,谢谢Python 为什么所提供程序的输出会打印“文件”;1:1,2:1,3:2,-1:1“;而不是",;0:2,1:1,2:1,3:2,-1:1;?,python,class,if-statement,Python,Class,If Statement,下面是提供的代码。我自己测试了一些东西。我了解到,如果我在(L中的I)之后添加一个print(I),它将打印零,但是如果我在(I:)之后添加print(I),那么它不会打印零。我已经在网上和我的课本上搜索过了,但我自己无法解释这一点。“如果我:”和“如果我:”到底是做什么的?任何帮助都会很好,谢谢 class TestClass(object): def __init__(self,L=None): self.D = {} if L:
class TestClass(object):
def __init__(self,L=None):
self.D = {}
if L:
for i in L:
if i:
if i in self.D:
self.D[i] += 1
else:
self.D[i] = 1
def __add__(self,param):
if type(param) == TestClass:
for k, v in param.D.items():
if k in self.D:
self.D[k] += v
else:
self.D[k] = v
return TestClass(self.D)
else:
return self + TestClass(param)
def __str__(self):
out_str = ''
for k, v in self.D.items():
out_str += '{}:{}, '.format(k, v)
out_str = out_str.strip(", ")
return out_str
inst1 = TestClass([-1,0,0,1,2,3,3])
print(inst1)
我是零,将被视为假,删除这一行,你会很好
if i:
0
在python中被视为False
,因此如果i:
为非零,则只有i
为True
。此外,一个空列表[]
和None
都被视为False
,因此如果L:
只有在列表L
不为空且不为None
的情况下才会为True
谢谢大家。这帮了大忙!!!我假设这与集合、元组、字典等是一样的?如果变量=0也是一样的?嘿,查理。如果有一个可接受的答案,你应该接受它,这样问题就可以结束了。。