# -*- coding: utf-8 -*-
#------------------------------------------
# 排序一个列表序列,并统计每一个元素出现的次数
# Author: Maxwell_Lu
# Date: 2017/06/17
#------------------------------------------
import random
from random import randint
# a-z: 97~122
# A-Z: 65~90
#------------------------------------------
# 产生一个指定长度的列表,元素是整数,浮点数,字符串
def generate_random_list(n):
random_list=[]
#创建一个空的列表存储数据
for i in range(n):
if randint(0,2)==0:
random_list.append(randint(0,10))
#随机生成一个0~10的整数
elif randint(0,2)==1:
random_list.append(eval(format(random.random()*10, "4.2f"))) #随机生成一个0~10的浮点数
else:
if randint(0,1)==0:
random_list.append(chr(randint(65,90)))
#随机生成一个A~Z的字母
else:
random_list.append(chr(randint(97,122)))
#随机生成一个a~z的字母
return random_list
#------------------------------------------
#------------------------------------------
# 排序生成的随机列表
def sort_random_list(lst=[]):
lst=sorted(lst)
return lst
#------------------------------------------
#------------------------------------------
# 统计每一个元素出现的次数,并按照元素大小排序
def count_times_of_elements_1(lst=[]):
result_list=[]
#把最后的元素及它的个数放在列表里
lst_different=list(set(lst))
#利用set函数去重,再用list转换为list数据类型
for element in lst_different:
temp_list=[]
temp_list.append(element)
temp_list.append(lst.count(element))
result_list.append(temp_list)
result_list=sorted(result_list)
return result_list
# print(element, lst.count(element))
#对于不重复的列表里的每一个元素,在初始列表中用count统计元素的个数
#------------------------------------------
#------------------------------------------
# 统计每一个元素出现的次数,并按照元素个数从大到小排序排序
def count_times_of_elements_2(lst=[]):
result_list=[]
#把最后的元素及它的个数放在列表里
lst_different=list(set(lst))
#利用set函数去重,再用list转换为list数据类型
for element in lst_different:
temp_list=[]
temp_list.append(lst.count(element))
temp_list.append(element)
result_list.append(temp_list)
result_list=sorted(result_list)
result_list.reverse()
return result_list
# print(element, lst.count(element))
#对于不重复的列表里的每一个元素,在初始列表中用count统计元素的个数
#------------------------------------------
if __name__=="__main__":
mylist=generate_random_list(200)
#随机生成200个数据
print(mylist)
print("***************************************************")
mylist_sorted=sort_random_list(mylist)
print(mylist_sorted)
print("***************************************************")
result_list_1=count_times_of_elements_1(mylist_sorted)
print(result_list_1)
print("***************************************************")
result_list_2=count_times_of_elements_2(mylist_sorted)
print(result_list_2)
print("***************************************************")