Python 3.x 编写一个Python函数直方图(l),该函数以重复的整数列表作为输入,并返回成对的列表
编写一个Python函数直方图(l),以重复整数列表作为输入,并返回成对列表,如下所示: 对于l中出现的每个数字n,函数返回的列表中应该正好有一对(n,r),其中r是l中n的重复次数 最后的列表应该按r(重复次数)升序排序。对于重复次数相同的数字,请按数字值的升序排列对 例如: 直方图([13,12,11,13,14,13,7,7,13,14,12]) [(11,1)、(7,2)、(12,2)、(14,2)、(13,4)] 直方图([7,12,11,13,7,11,13,14,12]) [(14,1)、(7,2)、(11,2)、(12,2)、(13,2)]Python 3.x 编写一个Python函数直方图(l),该函数以重复的整数列表作为输入,并返回成对的列表,python-3.x,Python 3.x,编写一个Python函数直方图(l),以重复整数列表作为输入,并返回成对列表,如下所示: 对于l中出现的每个数字n,函数返回的列表中应该正好有一对(n,r),其中r是l中n的重复次数 最后的列表应该按r(重复次数)升序排序。对于重复次数相同的数字,请按数字值的升序排列对 例如: 直方图([13,12,11,13,14,13,7,7,13,14,12]) [(11,1)、(7,2)、(12,2)、(14,2)、(13,4)] 直方图([7,12,11,13,7,11,13,14,12]) [(14
如果您对我的代码有任何疑问,请随时提问。 如果我的代码需要改进,请告诉我
def histogram(l):
count = 0
x=[]
k=[]
for i in range(len(l)):
index=i
count=0
for j in range(index,len(l)):
if l[index] == l[j] and l[index] not in k :
count =count + 1
k = k + [l[index]]
if (count != 0):
x = x + [(l[index], count)]
x.sort()
x=sorted(x,key=lambda x:x[1])
return x
#print(histogram([13,12,11,13,14,13,7,7,13,14,12]))
这不是免费站点的代码。向我们展示您当前的代码是什么,到目前为止您提出了什么,以及您遇到了什么困难。我不知道如何用python编写它。这就是为什么我发布了一个问题,要么你不应该接受作业(看起来就是这样),要么你应该开始。欢迎来到Stack Overflow,并详细描述您解决此问题的困难。不起作用,请帮助我不可接受非常感谢您的帮助虽然这可能是这个问题的答案,但鼓励添加一些解释。所以也不是通过代码评审来讨论代码改进。请阅读更多信息
def histogram(l):
count = 0
x=[]
k=[]
for i in range(len(l)):
index=i
count=0
for j in range(index,len(l)):
if l[index] == l[j] and l[index] not in k :
count =count + 1
k = k + [l[index]]
if (count != 0):
x = x + [(l[index], count)]
x.sort()
x=sorted(x,key=lambda x:x[1])
return x
#print(histogram([13,12,11,13,14,13,7,7,13,14,12]))
>>> def histogram(L):
... from collections import Counter
... return Counter(L).items()
...
>>> histogram([13,12,11,13,14,13,7,7,13,14,12])
[(11, 1), (12, 2), (13, 4), (14, 2), (7, 2)]
>>> histogram([7,12,11,13,7,11,13,14,12])
[(11, 2), (12, 2), (13, 2), (14, 1), (7, 2)]