python-set集合与Counter类的应用

问题描述题目

1.

import math
#判断素数
def prime(n):
    for i in range(2,int(math.sqrt(n))+1):
        if(n%i==0):
            return 0
    else:
        return 1
 
num=int(input('请输入一个大于 2 的自然数:'))
list_a=list(range(2,num))
#将非素数的元素值修改为-1
for i in list_a:
    if(prime(i)==0):
        list_a[i-2]=-1
#将list转换成set集合,删除-1,再转换成list排序
list_a=set(list_a)
list_a=list(list_a)
list_a.remove(-1)
print(sorted(list_a))

运行结果:

结果1

2.

#方法1
from collections import Counter

text = input('请输入一个字符串:')
#Counter类返回字典键值对,记录key-value,元素的计数
frequencies = Counter(text)
#max(dict,key=dict.get)方法返回字典dict中value值最大的键
#max(dict)返回字典dict中键的最大值
Maxchar=max(frequencies,key=frequencies.get)
print(Maxchar,':',frequencies[Maxchar])

运行结果

在这里插入图片描述

#方法2
ee = 'test!!!tssdfzfgfz@@@'

def max_letter_count(n):
  list4 = []#存放最终统计结果
  list1 = []#存放[[字符值,频数],]
  list2 = []#存放字符串中各位置字符出现的次数
  
  for i in n:
    list3 = [] #临时存放字符值以及频数
    count_max = n.count(i) #统计字符串第i个元素出现个数
    list3.append(i)
    list3.append(count_max)
    list1.append(list3)
    list2.append(count_max)

  num=max(list2)
  for i in range(len(list2)):
    if list2[i] == num:
      list4.append(list1[i][0])
  return list(set(list4)),'字符出现最大次数为:%d' % num

print(max_letter_count(ee))

运行结果

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
数据结构和算法是计算机科学中非常重要的两个概念,Python作为一门高级编程语言,也提供了许多内置的数据结构和算法库。 关于数据结构,Python内置了许多常用的数据结构,例如列表(list)、元组(tuple)、字典(dict)和集合set)等。此外,Python还提供了一些高级数据结构,例如堆(heapq)、双端队列(collections.deque)和有序字典(collections.OrderedDict)等。这些数据结构可以帮助我们更方便地处理数据,提高程序的效率。 关于算法,Python也提供了许多内置的算法库,例如排序算法(sorted)、查找算法(binary search)和随机数生成算法(random)等。此外,Python还提供了一些高级算法库,例如科学计算库NumPy和机器学习库scikit-learn等。这些算法库可以帮助我们更方便地实现各种算法,提高程序的效率和准确性。 下面是一个例子,演示如何使用Python内置的数据结构和算法库: ```python # 使用列表存储数据 data = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] # 使用sorted函数进行排序 sorted_data = sorted(data) print(sorted_data) # 输出:[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9] # 使用collections.Counter进行计数 from collections import Counter count_data = Counter(data) print(count_data) # 输出:Counter({5: 3, 3: 2, 1: 2, 2: 1, 4: 1, 9: 1, 6: 1}) # 使用heapq模块进行堆排序 import heapq heapq.heapify(data) sorted_data = [] while data: sorted_data.append(heapq.heappop(data)) print(sorted_data) # 输出:[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9] ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值