python - 当列表中没有值时,list.count() 表示 1
问题描述
我正在尝试计算列表 A" 中从 1 到 N 的所有元素的频率。我必须在 O(1) 空间内执行此操作,这就是为什么我将计数值附加到同一个列表中。我是新来的问题- 在 python 中求解。
def printfrequency(A,N):
#Your Code here
lis = []
for i in range(1,N+1):
if i in A:
A.append(A.count(i))
else:
A.append(0)
for i in A[-N:]:
print(i,end=" ")
此代码为输入提供了错误的值
N = 9
A = [9,2,5,7,9,2,2,1,4]
输出 --> 1 3 1 1 1 0 1 0 2
预期 --> 1 3 0 1 1 0 1 0 2
这适用于某些输入,例如
N = 2
A = 2 3 2 3 5
输出 --> 0 2 2 0 1
预期 --> 0 2 2 0 1
解决方案
要计算其中的值,A
您不应再将任何值附加到A
. 而是使用lis
您在那里创建的变量。例如,像这样
def printfrequency(A,N):
#Your Code here
lis = []
for i in range(1,N+1):
if i in A:
lis.append(A.count(i))
else:
lis.append(0)
for i in lis:
print(i, end=" ")
推荐阅读
- wcf - 测试客户端 WCF 抛出错误 wjen 调用
- android - 如何提高 Android 上的动画性能?
- html - 配置文件框的html模板
- jenkins - 未将参数传递给函数时找不到Jenkins方法
- java - 如何解决 java.lang.NoClassDefFoundError: com/google/api/client/repackaged/com/google/common/base/Strings
- android - 使用 BottomNavigationView 的 SlidingPanelUp 行为?
- javascript - 如何避免php中的分页重复记录?
- python - 检索excel的值作为python字典
- javascript - React 在挂载时将外部 HTML DOM 节点渲染到组件中
- angular - 每次用户禁用/启用设备上的位置时,如何捕获事件?