• 列表、元组、字典、集合类型内置方法


    列表类型内置方法

    作用

    存储多个任意数据类型的元素

    定义方式

    “[ ]”内用逗号隔开多个任意数据类型的元素

    hobby = ['run',1,2.3,'read','swimming','fishing']
    

    方法

    索引取值(既可取也可以改)
    a = hobby[3]
    hobby[0] = 'xiaoming'
    
    print(a)
    print(hobby)
    

    read

    ['xiaoming',1,2.3,'read','swimming','fishing']

    切片
    name_list = ['nick', 'jason', 'tank', 'sean']
    
    print(f"name_list[0:3:2]: {name_list[0:3:2]}")
    

    name_list[0:3:2]: ['nick', 'tank']

    长度
    print(len(name_list))
    

    4

    成员运算in和not in
    print('xiaoming' in name_list)
    print('xiaoming' not in name_list)
    

    False

    True

    追加值
    name_list.append('zhao')
    print(name_list)
    

    ['nick', 'jason', 'tank', 'sean', 'zhao']

    删除
    del name_list[2]
    print(name_list)
    

    ['nick', 'jason', 'sean']

    循环
    for name in name_list:
        print(name)
    

    nick

    jason

    tank

    sean

    多个值or一个值

    多个值

    有序or无序

    有序

    可变or不可变

    可变

    元祖类型内置方法

    作用

    类似于列表,可以取不可以存

    定义方式

    friends_tuple = ('longzeluola','canglaoshi','qiaobenai','nick')
    tup = tuple('abcd')
    

    方法

    索引取值(无法更改)
    name_tuple = ('nick','jason','tank','sean')
    print(name_tuple[0])
    

    nick

    切片(顾头不顾尾,步长)
    print(name_tuple[1:3:2])
    

    ('jason',)

    长度
    print(len(name_tuple))
    

    4

    成员运算
    print('nick' in name_tuple)
    

    True

    for循环
    for name in name_tuple:
        print(name)
    

    nick

    jason

    tank

    sean

    count()
    print(name_tuple.count('nick'))
    

    1

    index()
    print(name_tuple.index('nick'))
    

    0

    多个值or一个值

    多个值

    有序or无序

    有序

    可变or不可变

    无可变和不可变之说

    字典类型内置方法

    作用

    存多个值,但每一个值都有一个key与之对应,key对值有描述功能。多用于存的值表示的是不同的状态时,例如存的值有姓名、年龄、身高、体重、爱好。

    值太多列表存容易,取麻烦时使用字典。

    定义方式

    ’‘{ }“内用逗号分隔开多个元素,每一个元素都是key:value的形式,value可以是任意数据类型,而key通常应该是字符串类型,但是key必须为不可变类型。

    方法

    按key取值:可存可取
    dic = {'a':1,'b',2}
    print(dic['a'])
    dic['a'] = 3
    print(dic('a'))
    

    1

    3

    长度len
    print(len(dic))
    

    2

    成员运算in和not in
    print('a' in dic)
    print(1 in dic)
    

    True

    False

    删除
    del dic['a']
    print(dic.get('a'))
    

    None

    dic.pop('a')
    print(dic.pop('b'))   # 随机删除指定的元素,打印删除的值
    print(dic.get('a'))
    

    2

    None

    priny(dic.popitem())  # 随机删除一个键值对,打印删除的值
    

    ('b',2)

    键keys()、值values()、键值对items()
    print(dic.keys())
    print(dic.values())
    print(dic.items())
    

    dict_keys(['a','b'])

    dict_values([1,2])

    dict_items([('a',1),('b',2)])

    循环
    for k,v in dic.items():
        print(k,v)
    

    a 1

    b 2

    多个值or一个值

    多个值

    有序or无序

    无序

    可变or不可变

    可变

    集合类型内置方法

    作用

    存多个值,为了集合之间做运算。

    集合内元素无序且集合元素不可重复,因此集合可以去重,但是去重后的集合会打乱原来元素的顺序。

    定义方式

    s = set()
    s1 = {1,2,3,4,5}
    

    方法

    长度
    s = {1,2,'a'}
    print(len(s))
    

    3

    成员运算in和not in
    print(1 in s)
    

    True

    集合类型的内置方法-集合运算.jpg

    集合类型内置运算-集合运算英文.jpg

    |并集
    pythoners = {'jason','nick','tank','sean'}
    linuxers = {'nick','egon','kevin'}
    print(pythoners|linuxers) # 对应方法pythoners.union(linuxers)
    

    {'egon', 'tank', 'kevin', 'jason', 'nick', 'sean'}

    &交集
    print(pythoners&linuxers)   # 对应方法pythoners.intersection(linuxers)
    

    {'nick'}

    -差集
    print(pythoners-linuxers)  # 对应方法pythoners.difference(linuxers)
    

    {'tank', 'jason', 'sean'}

    ^对称差集
    print(pythoners^linuxers)  # 对应方法pythoners.symmetric_difference(linuxers)
    

    {'egon', 'tank', 'kevin', 'jason', 'sean'}

    ==
    javers = {'nick','egon','kevin'}
    print(pythoners==linuxers)
    print(linuxers==javers)
    

    False

    True

    父集:>、>=
    java = {'jason','nick'}
    print(pythoners>linuxers)
    print(pythoners>=linuxers)
    print(pythoners>=java)
    print(pythoners.issuperset(java))
    

    False

    False

    True

    True

    子集:<、<=
    print(pythoners<linuxers)
    print(pythoners<=linuxers)
    print(java.issubset(java))
    

    False

    False

    True

    多个值or一个值

    多个值

    有序or无序

    无序

    可变or不可变

    可变

    布尔类型

    一般用于判断,除了0/None/空/False自带布尔值为False,其他的数据类型自带布尔值为True

    数据类型总结

    一个值 多个值
    整型/浮点型/字符串 列表/元祖/字典/集合
    有序 无序
    字符串/列表/元祖 字典/集合
    可变 不可变
    列表/字典/集合 整型/浮点型/字符串

    拷贝

    拷贝/浅拷贝/深拷贝都是针对可变类型数据而言的

    l1 = ['a','b','c',['d','e','f']]
    l2 = l1
    
    l1.append('g')
    
    print(l1)  # ['a','b','c',['d','e','f'],'g']
    print(l2)  # ['a','b','c',['d','e','f'],'g']
    

    如果l2是l1的拷贝对象,则l1内部的任何数据类型的元素变化,则l2内部的元素也会跟着改变,因为可变类型值变id不变

    浅拷贝

    import copy
    
    
    l1 = ['a','b','c',['d','e','f']]
    l2 = copy.copy(l1)
    
    l1.append('g')
    
    print(l1)  # ['a','b','c',['d','e','f'],'g']
    print(l2)  # ['a','b','c',['d','e','f']]
    
    l1[3].append('g')
    
    print(l1)  # ['a','b','c',['d','e','f','g'],'g']
    print(l2)  # ['a','b','c',['d','e','f','g']]
    

    如果l2是l1的浅拷贝对象,则l1内的不可变元素发生了改变,l2不变;如果l1内的可变元素发生了改变,则l2会跟着改变

    深拷贝

    import copy
    
    
    l1 = ['a','b','c',['d','e','f']]
    l2 = copy.deepcopy(l1)
    
    l1.append('g')
    
    print(l1)  # ['a','b','c',['d','e','f'],'g']
    print(l2)  # ['a','b','c',['d','e','f']]
    
    l1[3].append('g')
    
    print(l1)  # ['a','b','c',['d','e','f','g'],'g']
    print(l2)  # ['a','b','c',['d','e','f']]
    
    

    如果l2是l1的深拷贝对象,则l1内的不可变元素发生了改变,l2不变;如果l1内的可变元素发生了改变,l2也不会变,即l2永远不会因为l1的变化而变化

  • 相关阅读:
    HDU2897( 巴什博奕变形)
    HTML小知识点积累
    几种自己主动运行js代码的方式
    leetcode笔记:Contains Duplicate
    【Nutch基础教程之七】Nutch的2种执行模式:local及deploy
    为什么使用模板
    前端编程提高之旅(十)----表单验证插件与cookie插件
    【HDOJ 5399】Too Simple
    进程间通信之-信号signal--linux内核剖析(九)
    iOS类的合理设计,面向对象思想
  • 原文地址:https://www.cnblogs.com/gaohuayan/p/10921969.html
Copyright © 2020-2023  润新知