zoukankan      html  css  js  c++  java
  • # 如何在列表、字典,集合中根据条件帅选数据?

    # 解决方案:

    #列表: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())
    以上内容作为课堂笔记,如有雷同,请联系于我
  • 相关阅读:
    HashMap的存储原理
    HashSet的存储原理
    ArrayList的底层实现原理
    $.getJSON()不执行回调函数
    JavaScript学习笔记(一)
    【转】日语口语简略型总结(更新中。。。)
    计算机常用符号(日文)更新中。。。
    异常
    注解
    多线程
  • 原文地址:https://www.cnblogs.com/ArtisticMonk/p/9090611.html
Copyright © 2011-2022 走看看