Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python List count()不返回任何内容,而返回0_Python_Count - Fatal编程技术网

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':
希望能有所帮助!