# 如何在列表、字典,集合中根据条件帅选数据?
# 解决方案:
#列表:fiter函数:fiter(lambda x:x>=0,data)
# 列表解析:[x for x in data if x>=0]
#字典解析:{k:v for k,v in d.iteritems() if v >90}
#集合解析:{x for x in s if x % 3 == 0}
# 列表创建字典 {x : 列表名称 for x in 另一个}
# data1 = [1,2,3,4,5,6,7]
# data2 = [1,2,3,4,5,6,7]
# dict1 = {x:y for x in data2 for y in data1}
# print(dict1)
# 然后判断他的值大于4的
# {k : v for k,v in dict1.iter() if v > 4}
zero, one, two, three, fous, five, six, seven, eight, nine = range(10) """ Author:Cairo """ from random import randint from collections import Counter import re # 如何统计序列中元素的出现频度? # 1,某随机序列[12,3,5,6,5,5,5,7,7,7,88,888,88,88]中找到出现的次数最高的3个元素,他们出现的次数是多少 # data = [randint(0,20) for _ in range(30)] # # 这样需要统计的话,应该是产生的是一个字典,而我们的key就是我们的元素 # # 然后创建一个字典 # dataC = dict.fromkeys(data,0) # for x in data: # dataC[x] += 1 # print(dataC) # # Counter(data) 制作成一个新的列表 # dataC2 = Counter(data).most_common(3) # print(dataC2) # 最后的频度解决方案:使用collections.Counter对象 # 将序列传入Counter的构造器,得到Counter对象是频度的字典 # Counter.most_common(n)方法得到频度最高的n个元素的列表 # 2.对某英文文章的单词,进行词频统计,找到出现的次数最高的10个单词,他们出现次数是多少 # 用正则》》:读入一个文件txt = open(文件名).read() # 然后用正则把整个字符串分割 re.split("\W+",txt) "\W+"非字母 #然后可以像上面一样了 # 根据成绩高低,计算学生排名 ,某班的英语以字典的形式存储 # 两种解决方案:1、利用zip将字典数据转化为元组 zipP = { x : randint(60,100) for x in "xyzabc"} print(zipP) # 注意:Python2.x的zip函数直接返回的是一个列表元组,Python3.x版本已经改成返回一个迭代器了 Zip = zip(zipP.values(),zipP.keys())##使用这个会造成很大的空间浪费 ZIP = [x for x in Zip] ZIP = sorted(ZIP) print(ZIP) # 2、传递sorted函数的key参数
zero, one, two, three, fous, five, six, seven, eight, nine = range(10) """ Author:Cairo """ ''' 如何快速找到多个字典中的公共键(key)? 实际案例: 西班牙足球甲级联赛,每轮球员进球统计: 第一轮:{'1':1,'梅西':2,'本则吗':1} 第er轮:{'3':2,'托雷斯':2,'本则吗':5} 第san轮:{'3':1,'梅西':3,'内尔吗':1} 统计出前N轮,每场比赛都有进球的球员。 ''' from random import randint , sample # 随机3,6个球员进球 # 使用字典解析成一个字典,产生三轮数据 oneBall = {x:randint(1,4) for x in sample('abcdefg',randint(3,6))} print(oneBall) twoBall = {y:randint(1,4) for y in sample('abcdefg',randint(3,6))} print(twoBall) threeBall = {z:randint(1,4) for z in sample('abcdefg',randint(3,6))} print(threeBall) # oneBall.keys()转成集合,然后在做交集 print(oneBall.keys() & twoBall.keys() & threeBall.keys())
以上内容作为课堂笔记,如有雷同,请联系于我

浙公网安备 33010602011771号