o = [1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5]
我希望能够显示多少个1、2等。
例如,如果有6个1
,它将打印BendingF = 6
。我的1
,2
,3
,4
,5
是不同的职位。 1 = BendingF
,2 = BendingM
,3 = Twisting
,4 = Walking
,5 = Squat
。
我尝试了
##1 = print('Bending Forward')
##2 = print('Bending Midway')
##3 = print('Twisting')
##4 = print('Walking')
##5 = print('Squating')
但这会给我错误:
SyntaxError:无法分配给文字
答案 0 :(得分:1)
正如 @Amadan 所述,您可以使用Counter
对数组中每次出现的唯一数字进行计数。然后创建一个字典(labels
),将您的整数映射到它们将代表的字符串值:
from collections import Counter
o = [1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5]
labels = {
1: 'Bending Forward',
2: 'Bending Midway',
3: 'Twisting',
4: 'Walking',
5: 'Squating'
}
count = Counter(o)
for val in count.keys():
print(labels[val] + " - " + str(count[val]))
输出
Bending Forward - 9
Bending Midway - 8
Twisting - 16
Walking - 11
Squating - 8
答案 1 :(得分:1)
o = [1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5]
print("Bending forward = " + str(o.count(1)))
print("Bending Midway = " + str(o.count(2)))
print("Twisting = " + str(o.count(3)))
print("Walking = " + str(o.count(4)))
print("Squatting = " + str(o.count(5)))