我正在使用最新版本的python和pycharm专业版。我正在试图弄清楚如何取一个像[15,15,15,4,4,4,4,4]这样的数组并输出[3,15,6,4],其中一个数字表示某个值在数组中出现的次数,另一个数字表示该值的内容。在我提供的示例中,有15个出现3次,4个出现6次,因此输出为[3,15,6,4]。我已经有了一个计算数组中唯一元素数量的方法(在这个例子中,它应该是2)但是我不确定我将如何存储值是什么以及它出现了多少次。任何帮助都将不胜感激。
wh6knrhe1#
很简单,您只需将数组列表转换为set,然后使用count方法即可。
set
count
lst=[15, 15, 15, 4, 4, 4, 4, 4, 4] out=[[lst.count(i),i] for i in set(lst)] print(out)
输出
[[6, 4], [3, 15]]
hfyxw5xn2#
这是一个很好的字典例子。关键字是你的数字,值是计数。浏览你的列表。如果你能计数列表中有多少不同的数字,你必须有那个代码。测试字典中是否存在该数字。如果存在,则递增计数。如果不存在,则为添加的新键存储1。
qnakjoqk3#
我不确定内置的方法,但这样做的算法看起来像
counts = {} for i in range(len(my_array)): if my_array[i] in counts.keys(): counts[my_array[i]] = 1 else: counts[my_array[i]] += 1
f87krz0w4#
如果要使用numpy:
numpy
import numpy as np l = [15, 15, 15, 4, 4, 4, 4, 4, 4] np.vstack(np.unique(l, return_counts= True)[::-1]).ravel(order='F')
输出:
array([ 6, 4, 3, 15])
这里,顺序是按l的升序值
l
4条答案
按热度按时间wh6knrhe1#
很简单,您只需将数组列表转换为
set
,然后使用count
方法即可。输出
hfyxw5xn2#
这是一个很好的字典例子。关键字是你的数字,值是计数。浏览你的列表。如果你能计数列表中有多少不同的数字,你必须有那个代码。
测试字典中是否存在该数字。如果存在,则递增计数。如果不存在,则为添加的新键存储1。
qnakjoqk3#
我不确定内置的方法,但这样做的算法看起来像
f87krz0w4#
如果要使用
numpy
:输出:
这里,顺序是按
l
的升序值