• python学习第五天


    今天学习内容有:

    成对的保存数据。 以key:value的形式保存
    用{}表示,每一项内容都是key:value, 每项数据之间用逗号隔开
    字典中的key是不能重复的。 存储是依靠着key来计算的
    字典是使用hash算法计算key的哈希值. 使用哈希值来存储数据

    哈希算法得到的是一个唯一的数字(可能是正数, 可能是负数, 很大或者很小)
    哈希算法是无序的

    字典中的key必须是可哈希的, 不可变的就是可哈希的

    不可变: 字符串, 元组, int, bool
    可变的: list, dict, set

    字典的value随便。
    增删改查
    1. 增加
    dic[key] = value
    setdefault(key, value)
    2.删除
    pop(key)
    popitem()
    del dic[key]
    clear()
    3.修改
    dic[key] = value
    dic1.update(dict2)

    4. 查询
    dic[key] 可能会报错
    dic.get(key)
    dic.setdefault()
    常见操作
    keys() key的集合
    values() value的集合
    items() 键值对的集合(key,value)

    a = 10
    b = 20
    a, b = b, a

    for k, v in dic.items():
    k, v
    字典的迭代
    for k in dic:
    k
    dic[k]
    字典的嵌套
    汪峰

    代码练习见下:

    ## 增
    dic = {}
    # 方法一:
    dic['Euan'] = '徐'
    # 方法二:
    dic.setdefault('jay','周杰伦') #若列表中没有出现过这个key则增加
    print(dic)
    dic.setdefault('jay','周星驰') #若列表中存在这个key,则不会发生改变
    print(dic)
    ## 删
    dic = {'Euan':'徐','jj':'林俊杰','jay':'周杰伦','小猪':'罗志杰'}
    # 方法一:
    dic.pop('Euan') #输入key值进行删除
    # 方法二:
    dic.popitem() #随机删除
    print(dic)
    # 方法三/四:(不常用)
    # .claer() --> 清空字典中的所有内容
    # del dic[key]

    ## 改
    dic = {'Euan':'徐','jj':'林俊杰','jay':'周杰伦',}
    # 方法一:
    dic['小猪'] = '罗志杰'
    # 方法二:
    dic1 = {'jj':'林俊杰','jay':'昆凌','小猪': '罗志杰'}
    dic.update(dic1)

    print(dic)

    ## 查
    dic = {'Euan':'徐','jj':'林俊杰','jay':'周杰伦',}
    # 方法一: dic[key]
    print(dic['Euan'])
    # print(dic['euan']) #若不存在key值,报错
    # 方法二: dic.get(key,value)
    print(dic.get('Euan'))
    print(dic.get('uan','没有')) # 若不存在key值,返回None,若value处有值,则返回value
    # 方法三: dic.setdefault
    # 流程: 1. 先检测是否存在key,xxxx
    # 2. 根据你给的key把value查询出来
    dic = {"jay":"周杰伦"}
    ret = dic.setdefault("jay_jj","林俊杰")

    # 转化到字典中。 key1:[大于66的数据], key2:[小于等于66]
    # 方法一:
    print(dic, ret)lst = [11,22,33,44,55,66,77,88,99]

    dic = {"key1":[], "key2": []}
    for el in lst:
    if el > 66:
    dic['key1'].append(el)
    else:
    dic["key2"].append(el)
    print(dic)

    # 方法二
    lst = [11,22,33,44,55,66,77,88,99]
    dic = {}
    for el in lst:
    if el > 66:
    dic.setdefault("key1", []).append(el)
    else:
    dic.setdefault("key2", []).append(el)
    print(dic)




    # 转化到字典中。 key1:[大于66的数据], key2:[小于等于66]
    lst = [11,22,33,44,55,66,77,88,99]
    dic = {}
    for num in lst:
    if num > 66:
    dic.setdefault('key1',[]).append(num)
    else:
    dic.setdefault('key2', []).append(num)
    print(dic)



    # 常见操作
    # .keys() --> key的集合
    dic = {'Euan':'徐','jj':'林俊杰','jay':'周杰伦',}
    print(dic.keys())
    # .values() --> value的集合
    print(dic.values())
    # .items() --> 键值的所有集合 (key,value) item是元组
    print(dic.items())

    # 字典的迭代
    for el in dic.items():
    k, v = el # 解包,解构, 如 a, b, c = (1, 2, 3)
    print(k,v)
    # 可将以上内容简写为:
    for k, v in dic.items():
    print(k,v)


    # 字典的嵌套 汪峰
    wf = {
    "name":"汪峰",
    "age":42,
    "hobby":"抢头条",
    "代表作":["春天里","怒放的生命","北京 北京"],
    "wife_now":{
    'name':"章子怡",
    "age":62,
    "爱好":"打麻将"
    },
    "children": [{'id':1,"name":"汪涵"},{"id":2,"name":"汪才"}]
    }
    print(wf['wife_now']['爱好'])
    # 汪峰的小儿子改名成 汪晓峰
    wf['children'][1]['name'] = "汪晓峰"
    print(wf)
  • 相关阅读:
    3Dtouch 的实际应用详解(tableView中的应用)
    使用UIScrollView的zoomscale实现图片捏合放大
    SVN命令使用详解
    参数传递
    cookie文件路径
    XML和HTML之间的差异
    cssSelector元素定位方法
    如何调用一个数据完整的firefox浏览器
    Android生命周期详解
    android 利用countDownLatch实现主线程与子线程之间的同步
  • 原文地址:https://www.cnblogs.com/EuanXu/p/9837202.html
Copyright © 2020-2023  润新知