zoukankan      html  css  js  c++  java
  • 5、如何快速找到多个字典中的公共键(key) 6 如何让字典保持有序 7 如何实现用户的历史记录功能(最多n条)

    5、如何快速找到多个字典中的公共键(key)

    from random import randint,sample
    #随机取数
    # a = sample("ABCDEF",randint(5,6))
    # print(a)
    # b1 = {x:randint(1,4) for x in sample("ABCDEF",randint(3,6))}
    # b2 = {x:randint(1,4) for x in sample("ABCDEF",randint(3,6))}
    # b3 = {x:randint(1,4) for x in sample("ABCDEF",randint(3,6))}
    # print(b1,b2,b3)
    b1 = {'A': 4, 'D': 4, 'F': 4, 'B': 3}
    b2 = {'A': 4, 'B': 3, 'C': 4, 'D': 3, 'F': 4, 'E': 4}
    b3 = {'A': 1, 'B': 1, 'C': 1, 'D': 4, 'F': 4}
    
    #找出公共key方法一:
    ret = []
    for x in b1:
        if x in b2 and x in b3:
            ret.append(x)
    
    print(ret)
    
    #方法二通过集合方式找出交集
    s1 = set(b1.keys())
    s2 = set(b2.keys())
    s3 = set(b3.keys())
    info = s1 & s2 & s3
    print(info)
    
    map(dict.keys,[s1,s2,s3])
    
    from functools import reduce
    
    print(reduce(lambda a,b:a & b,map(dict.keys,[b1,b2,b3])))

     6 如何让字典保持有序

     

    我们创建的字典默认是无序的,python有个模块QrderedDict可以记录存入元素的顺序,然后迭代时会按顺序取出

    from collections import OrderedDict
    dict1 = OrderedDict()
    
    dict1["1"] = 1
    dict1["2"] = 2
    dict1["3"] = 3
    dict1["4"] = 4
    print(dict1)
    for k,v in dict1.items():
        print(k,v)

    result:

    OrderedDict([('1', 1), ('2', 2), ('3', 3), ('4', 4)])
    1 1
    2 2
    3 3
    4 4

     7 如何实现用户的历史记录功能(最多n条) 

     

    python标准库里有个存储队列的模块deque,可以用来存储历史数据

    from collections import deque
    s = deque([],4)
    while True:
        d = input("请输入数字")
        if d.isdigit():
            print("输入的是数字")
            s.append(d)
        elif d == "history":
            print(s)
        else:
            break

    result:

    请输入数字5
    输入的是数字
    请输入数字6
    输入的是数字
    请输入数字7
    输入的是数字
    请输入数字8
    输入的是数字
    请输入数字history
    deque(['5', '6', '7', '8'], maxlen=4)
    请输入数字100
    输入的是数字
    请输入数字history
    deque(['6', '7', '8', '100'], maxlen=4)
    请输入数字

     
  • 相关阅读:
    PHP使用file_put_contents写入文件的优点
    CSS3如何去除 inline block 元素之间多出的空格
    PHP中根据IP地址判断所在城市等信息
    CSS3使用Animation为同一个元素添加多个动画效果
    Ubuntu Server 12.04 安装 Jabberd2 服务器
    Mac系统使用命令行快捷打开Sublime
    在 Flash ActionScript 2.0 中调用 Javascript 方法
    elem.attr()无法正确判断checkbox是否选中
    android 竖向viewpager
    【iOS入门】UITableView
  • 原文地址:https://www.cnblogs.com/laonicc/p/6720892.html
Copyright © 2011-2022 走看看