Python List count()不返回任何内容,而返回0
我试图在对嵌套列表进行迭代之后获得该列表中的元素计数。但是,当我要查找的元素不在列表中时,我希望代码返回我Python List count()不返回任何内容,而返回0,python,count,Python,Count,我试图在对嵌套列表进行迭代之后获得该列表中的元素计数。但是,当我要查找的元素不在列表中时,我希望代码返回我0。但是它给了我一个空白输出,而不是0。我如何解决它 s=[['F1','S1'],['F2','S2'],['F3','S3'],['F1','S2'],['F2','S3'],['F3','S2'],['F2','S1'],['F4','S1'],['F4','S3'],['F5','S1']] F=[] S=[] for a,b in s: F.append(a) S.
0
。但是它给了我一个空白输出,而不是0
。我如何解决它
s=[['F1','S1'],['F2','S2'],['F3','S3'],['F1','S2'],['F2','S3'],['F3','S2'],['F2','S1'],['F4','S1'],['F4','S3'],['F5','S1']]
F=[]
S=[]
for a,b in s:
F.append(a)
S.append(b)
for i in s:
if i[0]=='F1' and i[1]=='S1':
print('P(F=F1|S==S1):',s.count(i),'/',S.count('S1'))
if i[0]=='F1' and i[1]=='S2':
print('P(F=F1|S==S2):',s.count(i),'/',S.count('S2'))
if i[0]=='F1' and i[1]=='S3':
print('P(F=F1|S==S3):',s.count(i),'/',S.count('S3'))
我得到的输出是:P(F=F1|S==S1): 1 / 4
P(F=F1|S==S2): 1 / 3
当
I[0]=='F1'
和I[1]=='S3'
你的列表中没有F1和S3的配对时,我就不出来了。如果你在计算你可能想看的集合。计数器
:
从集合导入计数器
s=['F1','S1'],['F2','S2'],['F3','S3'],['F1','S2'],['F2','S3'],['F3','S2'],['F2','S1'],['F4','S1'],['F4','S3'],['F5','S1']
计数器(s中i的元组(i)
结果:
Counter({('F1', 'S1'): 1,
('F2', 'S2'): 1,
('F3', 'S3'): 1,
('F1', 'S2'): 1,
('F2', 'S3'): 1,
('F3', 'S2'): 1,
('F2', 'S1'): 1,
('F4', 'S1'): 1,
('F4', 'S3'): 1,
('F5', 'S1'): 1})
您的列表不包含[f1,s3]。
下次尝试使用print语句调试它,因此在终端中打印出每个迭代,因为if条件不满足,所以无法获得输出。如果在每次迭代中打印i[0]和i值,您会发现这些值如下所示:
希望有帮助 您的
i
包含整个[F1,S1]
而不是子列表的单独项。此输入中不存在i[0]='F1'
和i[1]='S3'
的情况。应该有这样的情况吗?为什么要迭代s
?为什么if
s?谢谢你,吉尔。当[F1,S3]不在列表中时,预期输出为:“P(F=F1 | S==S3):0/3”。有没有办法实现这一点?你能详细说明一下吗?据我所知,当I[0]不等于F1且I[1]不等于S3时,您想实现第三个if条件吗?如果是这种情况,只需将上一个If条件更改如下:If i[0]!='F1'和i[1]!='S3':
希望能有所帮助!