• Python容器


    列表 list

    1、列表的格式为,把值放入[ ]中

    >>> lis = ['a', 1, ['a', 'c', 1]]

    2、列表中可以嵌套任何类型

    索引

    因为列表是有序的,那么我们可以通过列表的索引来获取列表里面的值,而列表本身的索引是从0开始计算的

    >>> lis = ["a", "b", "c", 1, 2, 3]
    >>> print(lis[0])
    a
    >>> print(lis[-2])
    2

     index(self, value, start=None, stop=None) 获取从左到右第一个值的索引

    >>> lis    = ['a', 'b', 'c', 1, 2, 'a', 'a', 3, 'd', 'e']
    >>> print(lis.index("a"))           
    0

    切片

    雷同于str的切片

    >>> lis = ['a', 's', 'd', 'g', 'r']           
    >>> lis[0:2]           
    ['a', 's']

    追加

     append(self, p_object) 添加在最后面,可以是其他可迭代对象

    >>>lis = ["a", "b", "c", 1, 2, 3]
    >>> lis.append("d")           
    >>> print(lis)
    ['a', 'b', 'c', 1, 2, 3, 'd']

     extend(self, iterable) 添加其他可迭代对象

    >>> lis = ["a", "b", "c", 1, 2, "a", "a", 3]
    >>> lis1 = ["d", "e"]           
    >>> lis.extend(lis1)           
    >>> print(lis, lis1)           
    ['a', 'b', 'c', 1, 2, 'a', 'a', 3, 'd', 'e'] ['d', 'e']

     insert(self, index, p_object) 在指定索引处,插入某值

    >>> lis = ['a', 'b', 'c', 1, 2, 'a', 'a', 3, 'd', 'e']
    >>> lis.insert(1, "f")           
    >>> print(lis)           
    ['a', 'f', 'b', 'c', 1, 2, 'a', 'a', 3, 'd', 'e']

    删除

     pop(self, index=None) 删除某个值(1.指定索引;2. 默认最后一个),并获取删除的值长度

    >>> lis = ['a', 'f', 'b', 'c', 1, 2, 'a', 'a', 3, 'd']
    >>> v1 = lis.pop()           
    >>> v2 = lis.pop(2)           
    >>> print(v1, v2)           
    d b
    >>> print(lis)           
    ['a', 'f', 'c', 1, 2, 'a', 'a', 3]

     remove(self, value) 删除指定的值,左边优先

    >>> lis    = ['a', 'f', 'c', 1, 2, 'a', 'a', 3]
    >>> lis.remove("a")           
    >>> print(lis)           
    ['f', 'c', 1, 2, 'a', 'a', 3]

     del + 值 

    >>> lis    = ['f', 'c', 1, 2, 'a', 'a', 3]
    >>> del lis[1]           
    >>> print(lis)           
    ['f', 1, 2, 'a', 'a', 3]

    复制

     copy(self) 浅拷贝列表

    >>> lis = ["a", "b", "c", 1, 2, 3]           
    >>> b = lis.copy()           
    >>> print(b)           
    ['a', 'b', 'c', 1, 2, 3]

    循环

    可以使用for循环打印列表里面的值

    >>>lis = ["a", "b", "c", 1, 2, 3]
    >>> for i in lis:
        print(i)    
    a
    b
    c
    1
    2
    3

    包含

     A in B 判断A是否在B里面,即返回True和False

    >>> lis    = ['f', 1, 2, 'a', 'a', 3]
    >>> v = "f" in lis           
    >>> print(v)           
    True 

    排序

     sort(self, cmp=None, key=None, reverse=False) 按照一定的方式排序,其排序顺序为ASCII码顺序,但是列表里不能同时有数字或字符

    >>> lis = ['a', 's', 'd', 'g', 'r']           
    >>> lis.sort()           
    >>> print(lis)           
    ['a', 'd', 'g', 'r', 's']

     reverse(self) 是列表成倒序排列

    >>> lis    = ['a', 'd', 'g', 'r', 's']
    >>> lis.reverse()           
    >>> print(lis)           
    ['s', 'r', 'g', 'd', 'a']

    其他

     clear(self) 清空列表

    >>>lis = ["a", "b", "c", 1, 2, 3]
    >>> lis.clear()       
    >>> print(lis)           
    []

     count(self,value) 计算列表里有多少个该值

    >>> lis = ["a", "b", "c", 1, 2, "a", "a", 3]           
    >>> v = lis.count("a")           
    >>> print(v)           
    3

    修改

    >>> lis    = ['a', 's', 'd', 'g', 'r']
    >>> lis[2] = "e"           
    >>> print(lis)           
    ['a', 's', 'e', 'g', 'r']
    
    ## lis[索引] = 想要修改成的值

    深浅拷贝

    >>> print(test_list)
    [[1, 2], 3, 4]
    >>> print(copy_list)
    [[1, 2], 3, 4]
    >>> copy_list[2] = 5
    >>> copy_list[0][1] = 6
    >>> print(test_list, copy_list)
    [[1, 6], 3, 4]     [[1, 6], 3, 5]   ##当改了拷贝列表里的一级元素时,源列表元素并没有改变;但是改变了二级元素时,却改变了
    ####用copy()只能浅拷贝第一级元素
    
    ########################深拷贝#######################
    >>> test_list = [[1,2],3,4]
    >>> import copy      ##引入copy模块
    >>> copy_list = copy.deepcopy(test_list)     ##使用里面的deepcopy方法
    >>> copy_list[0][1] = 5
    >>> print(test_list, copy_list)
    [[1, 2], 3, 4] [[1, 5], 3, 4]

    元组 tuple

    元组的一阶元素不可被修改,不能被增加或者删除,但是元组的第二阶元素可以被修改,而其格式为

    >>> tup = (12, 32, "a", "d")

    索引

    >>> tup    = (12, 32, 'a', 'd')
    >>> tup[0]           
    12

     index(self, value, start=None, stop=None) 

    >>> tu = ('a', 'b', 'c')
    >>> v = tu.index('b')           
    >>> print(v)           
    1

    切片

    >>> tup = (12, 32, 'a', 'd')
    >>> tup[0:2]
    (12, 32)

    循环

    >>> tup = (12, 32, 'a', 'd')
    >>> for i in tup:
        print(i)           
    12
    32
    a
    d

    长度 len() 

    >>> tup    = (12, 32, 'a', 'd')
    >>> len(tup)           
    4

    其他

     join() 

    >>> tu = ('a', 'b', 'c')           
    >>> v = "-".join(tu)           
    >>> print(v)           
    a-b-c             ##注意:元组里面必须全是字符

     count(self, value) 

    >>> tu = ('a', 'b', 'c', 'a', 'r', 'd', 'a')           
    >>> v = tu.count("a")           
    >>> print(v)           
    3

    字典 dict

    任何字典都是无序的,而布尔值(1,0)、列表、字典不能作为字典的key. 它的构造方式为:

    >>> dic = {"name":"Hermaeus", "age":19, "hometown":"meishan"}
    ##  里面的任何一对又被称之为键值对,每一个键值对由 key:value组成

     索引

    1、通过关键字key获得返回值

    >>> dic = {"name":"Hermaeus", "age":19, "hometown":"meishan"}
    >>> dic['name']
    'Hermaeus'
    ##  格式为,dic[key]将返回,其所对的值

    2、 get(self, k, d=None) 

    获取与key相应的值,如果没有相应的key不会报错,如果指定“d”的话,没有找到“k”,就返回“d”

    >>> dic = {'name': 'Hermaeus', 'age': 19, 'hometown': 'meishan'}
    >>> v = dic.get("age")
    >>> print(v)
    19
    >>> v = dic.get("lover", "He doesn't have any lover")
    >>> print(v)
    He doesn't have any lover

     3、 items(self) 得到字典里面所有键值对的列表形式

    >>> dic = {'name': 'Hermaeus', 'age': 19, 'hometown': 'meishan'}
    >>> v = dic.items()
    >>> print(v)
    dict_items([('name', 'Hermaeus'), ('age', 19), ('hometown', 'meishan')])

    4、 values(self) 得到dict里面所有的value

    >>> dic = {'name': 'Hermaeus', 'age': 19, 'hometown': 'meishan'}
    >>> v = dic.values()
    >>> print(v)
    dict_values(['Hermaeus', 19, 'meishan'])

    5、 keys(self) 得到dict里面所有的key

    >>> dic = {'name': 'Hermaeus', 'age': 19, 'hometown': 'meishan'}
    >>> v = dic.keys()
    >>> print(v)
    dict_keys(['name', 'age', 'hometown'])

    新增

    格式:dic[key] = 新增的值

    >>> dic = {'name': 'Hermaeus', 'age': 19, 'hometown': 'meishan'}
    >>> dic["hobby"] = "reading"
    >>> print(dic)
    {'name': 'Hermaeus', 'age': 19, 'hometown': 'meishan', 'hobby': 'reading'}

    删除

     del dict[key] 

    >>> dic = {'name': 'Hermaeus', 'age': 19, 'hometown': 'meishan'}
    >>> del dic["name"]
    >>> print(dic)
    {'age': 19, 'hometown': 'meishan'}

     pop(self, k, d=None) 获取,并从字典里面移除

    >>> dic = {'name': 'Hermaeus', 'age': 19, 'hometown': 'meishan'}
    >>> v = dic.pop("age")
    >>> print(v, dic)
    19  {'name': 'Hermaeus', 'hometown': 'meishan'}

     popitem(self) 随机返回并删除字典中的一对键和值(一般删除末尾对),如果字典已经为空,却调用了此方法,就报出KeyError异常。

    >>> dic = {'name': 'Hermaeus', 'age': 19, 'hometown': 'meishan'}
    >>> v = dic.popitem()
    >>> print(v, dic)
    ('hometown', 'meishan') {'name': 'Hermaeus', 'age': 19}
    ##  被删除的值,被储存为元组

    循环

    循环只能得到字典的每个key

    >>> dic = {'name': 'Hermaeus', 'age': 19, 'hometown': 'meishan'}
    >>> for i in dic:
        print(i)    
    name
    age
    hometown

    长度 len() 

    >>> dic = {'name': 'Hermaeus', 'age': 19, 'hometown': 'meishan'}
    >>> print(len(dic))
    3

    其他

     setdefault(self, k, d=None) 已存在,不设置,获取当前key对应的值;不存在,设置,获取当前key对应的值

    >>> dic = {'name': 'Hermaeus', 'age': 19, 'hometown': 'meishan'}
    >>> v = dic.setdefault("hobby","reading")
    >>> print(v, dic)
    reading {'name': 'Hermaeus', 'age': 19, 'hometown': 'meishan', 'hobby': 'reading'}

    update(self, E=None, **F) 更新内容

    >>> dic = {'name': 'Hermaeus', 'age': 19, 'hometown': 'meishan'}
    >>> dic.update(hobby = "reading", entertainment = "coding") ##也可以是另一个字典
    >>> print(dic)
    {'name': 'Hermaeus', 'age': 19, 'hometown': 'meishan', 'hobby': 'reading', 'entertainment': 'coding'}

     clear(self) 清空

     copy(self)   浅拷贝

  • 相关阅读:
    js实现粘贴板复制
    oracle分页查询
    [小技巧]window10删除此电脑左侧栏中的非磁盘文件夹
    [web]2019第一起数据泄露事件
    [xml]AttributeError: 'xml.etree.ElementTree.Element' object has no attribute 'getroot'
    [python]Mongodb
    [urllib]urlretrieve在python3
    [flask]邮件配置-20171227
    [PowerShell]Python虚拟环境激活失败
    [git]git入门
  • 原文地址:https://www.cnblogs.com/MingleYuan/p/10594288.html
Copyright © 2020-2023  润新知