python-set集合与Counter类的应用

该篇博客展示了两个Python程序,第一个程序用于判断并筛选输入的自然数列表中的素数,将非素数替换为-1并进行排序。第二个程序通过两种方法统计输入字符串中出现次数最多的字符及其出现次数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述题目

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))

运行结果

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值