python列表字母排序方法,Python 大小排序

  python列表字母排序方法,Python 大小排序

  主题

  指定列表。该列表仅包含字符。请统计每个字符的出现次数,按出现次数排序,最后返回字典格式。

  例如:

  指定列表。[a , a , c , b , d , c , c , d , d]

  返回结果。{c: 4, d: 3, a: 2, b: 1}

  实现概念1

  使用Python的计数器,可以跟踪值的出现次数,并返回dictionary dict的子类Counter类对象。

  使用Python内置函数sorted()结合匿名函数lambda进行排序,设置reverse=True表示降序。

  将结果转换成字典dict格式并返回

  注意:sorted()返回新列表的列表,这些列表必须转换为字典格式并返回。

  代码实现

  从集合中导入计数器

  defdemo(str_list):

  temp=计数器(str_list)

  RES_list=sorted(temp.items(,key=lambda x: x[1],reverse=True)).

  RES_dict=dict(RES_list)).

  返回res_dict

  str_list=[a ,a ,c ,b ,c ,c ,c ,d ,d]

  打印(演示(str _ list))

  实现思路2

  设置一个空字典temp_dict来存储列表中的字符及其出现的位置。

  遍历列表,如果当前字符在字典中不存在,它将作为键值为1的键存储在字典中;如果当前字符存在于字典中,则将字典的相应键值加1。

  字典中的keys()和values()方法获取字母列表key_list和对应的字母计数列表value_list。

  字母列表对value_list进行排序。这里用的冒泡排序是从小到大排序,让字母对应出现次数,字母列表key_list也是排序。

  排序后,内置函数zip()和两个列表转换成字典,按照字母出现的次数排序。

  代码实现

  defdemo(str_list):

  temp_dict={}

  对于str_list中的I:

  如果我不在临时字典中:

  temp_dict[i]=1

  否则:

  temp_dict[i]=1

  ky_list=list(temp_dict.keys()

  value _ list=list(temp _ dict . values()

  forIinrange(Len ) value_list )- 1):

  forjinrange(len)value _ list)-I-1):

  if value _ list [ j ] value _ list [ J1 ]:

  值列表[j],值列表[j 1]=值列表[j 1],值列表[j]

  密钥列表[j],密钥列表[j 1]=密钥列表[j 1],密钥列表[j]

  RES _ dict=dict(zip(key _ list[:3360-1],value_list[:-1])

  返回res_dict

  str_list=[a ,a ,c ,b ,c ,c ,c ,d ,d]

  打印(演示(str _ list))

  实现理念3

  设置包含字符及其出现次数的空列表temp_list,并以元组形式(characters,times)添加此元素。

  设置用于存储列表中所有字符的set temp_set。

  遍历集合,在遍历时将字符及其出现的位置添加到temp_list中。

  temp_list中的元素按照字母数量从小到大的顺序排列。

  使用内置函数dict()将列表转换成字典,并按字母顺序排序。

  代码实现

  defdemo(str_list):

  temp_list=[]

  TEMP_set=set(str_list)

  对于i in temp_set:

  temp_list.append((I,str_list.count(i ) I)))

  forIinrange(len(temp_list )- 1):

  forjinrange(len ) temp_list )- i - 1):

  if temp _ list[j][1]temp _ list[J1][1]:

  临时列表[j],临时列表[j 1]=临时列表[j 1],临时列表[j]

  RES _ dict=dict(temp _ list[:3360-1])))

  返回res_dict

  str_list=[a ,a ,c ,b ,c ,c ,c ,d ,d]

  打印(演示(str _ list))

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: