• 五、python元组、字典、集合


    一、字典

    字典表示方式dict:{key:value,key1:value1,key2:value2}

    字典的key不能重复,如果有重复的key,前面的会被覆盖

    字典的key是唯一的不可变的数据(int float tuple boolen str)除此以外,其他的类型都不支持做key(列表,字典不能作为key,因为它们是可变的)

    字典的value:任何数据类型都支持

    如:my_songs = {"favor":"晴天","hated":"月亮之上","nigth":"雪"}

    1)通过key键取值

    my_songs = {"favor":"晴天","hated":"月亮之上","nigth":""}
    print(my_songs["favor"])   #  晴天

    2)字典的长度

    my_songs = {"favor":"晴天","hated":"月亮之上","nigth":""}
    print(len(my_songs))  # 3

    3)字典的索引

    字典没有索引和切片,print(my_song[0])----->报错KeyError

    有索引就代表有顺序,列表是有序的,字典是无序的

    4)删除

    my_songs = {"favor":"晴天","hated":"月亮之上","nigth":""}
    my_songs.pop("favor")
    print(my_songs)  # {'hated': '月亮之上', 'nigth': '雪'}

    注意:不能使用remove

    5)修改、添加

    如果key不在原来的字典中,就在最后添加key:value

    如在存在key,就是修改key的值

    my_songs = {"favor":"晴天","hated":"月亮之上","nigth":""}
    my_songs["hated"] = "十年"
    print(my_songs)  # {'favor': '晴天', 'hated': '十年', 'nigth': '雪'}
    my_songs["like"] = "鬼迷心窍"
    print(my_songs)  # {'favor': '晴天', 'hated': '十年', 'nigth': '雪', 'like': '鬼迷心窍'}
    6)取值
    my_songs = {"favor":"晴天","hated":"月亮之上","nigth":""}
    print(my_songs.keys())     # dict_keys(['favor', 'hated', 'nigth'])   取所有的key
    print(my_songs.values())   # dict_values(['晴天', '月亮之上', '雪'])  取所有的values
    print(my_songs.items())    # dict_items([('favor', '晴天'), ('hated', '月亮之上'), ('nigth', '雪')])

    二、元组

    列表的表示( ),类型:tuple

    names=("yuz","nobody")

    空元组names = ()

    1)一个元素的元组

    names = ("zjx")
    print(len(names))    # 3 
    print(type(names))   # str
    
    names = ("zjx",)
    print(len(names))    # 1 
    print(type(names))   # tuple

    注意:一个元素的元组,一定要在元素后加加逗号,如果不加逗号,数据类型是这个元素的数据类型

    2)元组是不可以修改的类型

    可以利用切片方式,实现元组的连接

    #在'Emma'和'Dinal'之间插入'Lili'
    tuple4 =  ('polo','Emma','Dinal','Jones')
    tuple4 =  tuple4[:2] + ('Lili',) + tuple4[2:]
    print(tuple4)      # ('polo', 'Emma', 'Lili', 'Dinal', 'Jones')

    3)元组是有序的,可以通过索引操作

    tuple_1 =  ('zjx','learn','python')
    print(tuple_1[2])   # python

    4)元组的解包/拆包

    a,b,c = ('zjx','java','python')
    print(a)    # zjx
    print(b)    # java
    print(c)    # python

    注意:赋值号= 前面的变量a,b,c的个数与元组的元素个数一定要相同,否则会报错

    5)其他操作同字符串

    • 重复操作符*(8 *(8,))
    • 逻辑操作符 and  or
    • 成员关系操作符 in, not in
    • 拼接操作符+(拼接操作符两边的元素类型要一致)
    • 关系操作符(>, >=,<,<=)

    6)什么时候用元组

    • 不可以修改的情况下用元组
    • 元组的性能要强于列表
    • 一般情况使用列表即可

    三、集合

    集合的表示{} ,类型:set

    和字典相比,是没有key的

    my_set = {"zjx","jira","jemter"}
    print(my_set)        # {"zjx","jira","jemter"}
    print(len(my_set))   # 3
    print(type(my_set))  #set

    1)无序的,不能使用索引和切片,不可修改某一元素

    2)可变-添加、删除、····(在pycharm中可通过set.查看可使用的函数)

    3)主要作用:为了去除重复元素

    my_set = {"java","zjx","python","zjx"}
    print(my_set)     # {'java', 'zjx', 'python'}

    4)面试题:去除重复数据

     思路:先转换成集合,再换成列表

    my_list =["java","zjx","lucy","java","python","zjx","java"]
    print(list(set(my_set))      # ['yuz', 'zjx', 'python', 'lucy']

    四、总结

    无序:不能通过索引和切片获取数据(字典、集合)

    有序:能通过索引和切片获取数据(元组、列表)

    可变:可修改、添加、删除(字典、列表、集合)

    不可变:不可修改、添加、删除(元组)

    元组:有序不可变

    字典:无序可变

    列表:有序可变

    集合:无序可变

  • 相关阅读:
    StarUML 破解方法
    String、StringBuilder、StringBuffer对比
    ThreadLocal源码
    编程思想——访问权限控制
    设计模式——调停者模式
    Abp.vNext 权限备注
    Abp 中 模块 加载及类型自动注入 源码学习笔记
    使用 ZipArchive 生成Zip文件备注
    ORACLE 连接SQLSERVER 数据库备忘
    FastReport 自定义数据集
  • 原文地址:https://www.cnblogs.com/zhangjx2457/p/13609344.html
Copyright © 2020-2023  润新知