本帖最后由 mewk 于 2018-1-11 21:38 编辑
- list1 = [12, 1, 3, 19, 0, 1, 16, 8, 19, 10, 6, 10, 0, 4, 3, 18, 2, 18, 17, 6, 16, 19, 12, 18, 4, 4, 16, 12, 13, 11, 0, 0, 12, 7, 10, 2, 7, 12, 4, 18, 13, 18, 16, 17, 14, 12, 1, 12, 4, 14, 8, 18, 4, 12, 10, 1, 18, 7, 2, 9, 3, 11, 12, 2, 9, 13, 12, 18, 15, 1, 9, 5, 11, 6, 12, 9, 16, 14, 18, 0, 15, 4, 17, 5, 1, 13, 0, 10, 0, 6, 16, 15, 3, 16, 20, 18, 4, 18, 16, 3]
- list1.sort() #顺序排列
- list1.append('end') #列表尾部插入标记,因为总是出现超出表格范围问题,所以用了这个笨办法
- list3 = [] #产生新列表
- i = 1 #因为不能list1[-1],所以从1开始
- while i <= len(list1)-1: #循环列表长度的次数
- l = 1 #重置统计次数,因为自己不和自己比较,开始比较就2次了,所以从1开始
- list2 = [] #生成和清空列表,用于记录元素和次数
- while list1[i] == list1[i-1]: #比较相邻的元素,直到相邻的不相同
- i += 1 #比较后面两个
- l += 1 #统计相同的出现的次数
- list2.append(list1[i-1]) #当不相同时,前面相同的最后一个元素加入表格的[0]位置
- list2.append(l)#统计的次数加入表格的[1]位置
- list3.append(list2)#将上面的表格,加入最终表格作为一个元素
- i += 1 #向前移动一位,使相邻的继续相等,进入下一次循环
- print(list3) #输出最终表格
复制代码 |