You should probably check for types list and tuple specifically. Otherwise you won't properly count strings in the multi-level list.
here's a small recursive function that will do it:
x = [False, 44, 3, 56, 3, [33, 45, 66, 3], ('c', 3), [4, 3]]*4
def deepcount(value,target):
if not isinstance(value,(list,tuple)):
return int(value==target)
return sum(deepcount(v,target) for v in value)
print(deepcount(x,3)) # 20
it will properly count strings in the structure:
y = ["abc", 12, "a",[23, False,"abc"]]*3
print(deepcount(y,"abc")) # 6
print(deepcount(y,"a")) # 3