• python基础之列表、元组


    一、列表

    列表(list)是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作

    作用:多个装备,多个爱好,多门课程,多个女朋友等

    定义:[ ]内可以有多个任意类型的值,逗号分隔

    定义列表:name = [ ]   #name等于中括号就是定义列表

    列表用来存储数据的

    1、基本操作

     

     

    列表的添加

    append

    追加,在列表的尾部加入指定的元素

    insert

    将指定的元素插入到对应的索引位上,注意负索引

     

     

    列表的删除

    pop

    弹出,返回并删除指定索引位上的数据,默认删除索引为-1的数据(相当于剪切)

    remove

    从左往右删除一个指定的元素

    del

    删除整个列表或列表的数据,del是python内置功能,不是列表独有的

    列表的查找

    注:列表没有find方法

    count

    计数,返回要计数的元素在列表当中的个数

    index

    查找,从左往右返回查找到的第一个指定元素的索引,如果没有找到,报错

    列表的排序

    reverse

    顺序倒序

    sort

    按照ascii码表顺序进行排序

    2、定义列表

    name = ['tom','jack','ren','yan']
    print(type(name))
    -------------------------------------------------
    <class 'list'>

    3、遍历列表

    name = ['tom','jack','ren','yan']
    for i in name:
        print(i)
    -------------------------------------
    tom
    jack
    ren
    yan
    ---------------------------------------------------
    #通过下标访问
    print(name[0])
    print(name[3])
    --------------------------------
    tom
    yan

    4、切片:取多个元素

    name = ['tom','jack','ren','yan','zhong','qq','weixin']
    print(name[0:3])  #取下标0至3之间的元素,包含0,不包含3
    print(name[:3])  
    print(name[:-1])  #取下标0至最后一个的元素,包含0,不包含-1
    print(name[4:])
    print(name[::2])  #2表示每隔一个元素,就取一个
    print(name[0:4:2])  #在0到4之间每隔一个元素取一个
    ------------------------------------------------------------
    ['tom', 'jack', 'ren']
    ['tom', 'jack', 'ren']
    ['tom', 'jack', 'ren', 'yan', 'zhong', 'qq']
    ['zhong', 'qq', 'weixin']
    ['tom', 'ren', 'zhong', 'weixin']
    ['tom', 'ren']

    5、追加

    name = ['tom','jack','ren','yan']
    print(name)
    name.append('我是新来的')  #在列表的尾部加入指定的元素
    print(name)
    -------------------------------------------------------------
    ['tom', 'jack', 'ren', 'yan']
    ['tom', 'jack', 'ren', 'yan', '我是新来的']

    6、插入

    name = ['tom','jack','ren','yan']
    print(name)
    name.insert(1,'插队的')  #插入到索引1位置
    print(name)
    ---------------------------------------------
    ['tom', 'jack', 'ren', 'yan']
    ['tom', '插队的', 'jack', 'ren', 'yan']

    7、修改

    name = ['tom','jack','ren','yan']
    print(name)
    name[1] = '该换人了'
    print(name)
    -------------------------------------------------
    ['tom', 'jack', 'ren', 'yan']
    ['tom', '该换人了', 'ren', 'yan']

    8、删除

    name = ['tom','jack','ren','yan','zhong','hello','go','python']
    del name[0]  #删除索引为0的指定元素
    print(name)  #tom已删除
    print(name.pop(0))  #输出要剪切的指定元素(知道索引,不知道内容)
    print(name)  #Jack已删除
    print(name.pop())  #pop默认删除最后一个元素
    print(name)
    print(name.remove('ren'))  #删除指定元素,且不输出(知道内容不知道索引)
    print(name)
    ---------------------------------------------------------
    ['jack', 'ren', 'yan', 'zhong', 'hello', 'go', 'python']
    jack
    ['ren', 'yan', 'zhong', 'hello', 'go', 'python']
    python
    ['ren', 'yan', 'zhong', 'hello', 'go']
    None
    ['yan', 'zhong', 'hello', 'go']

    9、扩展

    name = ['tom','jack','ren','yan','zhong']
    languages = ['pyhon','go','C#','PHP']
    name.extend(languages)
    print(name)
    --------------------------------------------
    ['tom', 'jack', 'ren', 'yan', 'zhong', 'pyhon', 'go', 'C#', 'PHP']

    10、拷贝

    name = ['tom','jack','ren','yan','zhong']
    name_copy = name.copy()
    print(name_copy)
    --------------------------------------------------
    ['tom', 'jack', 'ren', 'yan', 'zhong']

    11、统计

    name = ['tom','ren','ren','yan','zhong']
    print(name.count('ren'))
    ----------------------------------------------------
    2

    12、排序&翻转

    name = ['tom','ren','ren','yan','zhong','alex',1,12,2,3,23]
    name.sort()    #不同字符类型不能放在一起排序
    print(name)
    -------------------------------------
    Traceback (most recent call last):
      File "C:/Users/renyz02/Desktop/py_test1/20190911/list.py", line 76, in <module>
        name.sort()
    TypeError: '<' not supported between instances of 'int' and 'str'
    name = ['tom','ren','ren','yan','zhong','alex']
    print(name)
    name.sort()  #排序(字母按照ASCII码,数字从小到大)
    print(name)
    name.reverse()  #反转原来的顺序(数字、字母同理)
    print(name)
    -----------------------------------------------------
    ['tom', 'ren', 'ren', 'yan', 'zhong', 'alex']
    ['alex', 'ren', 'ren', 'tom', 'yan', 'zhong']
    ['zhong', 'yan', 'tom', 'ren', 'ren', 'alex']
    ----------------------------------------------------------------
    name = ['tom','ren','ren','yan','zhong','alex']
    print(name)
    # name.sort()
    # print(name)
    name.reverse()
    print(name)
    --------------------------------------------------
    ['tom', 'ren', 'ren', 'yan', 'zhong', 'alex']
    ['alex', 'zhong', 'yan', 'ren', 'ren', 'tom']

    13、获取下标

    name = ['tom','ren','ren','yan','zhong','alex']
    print(name.index('yan'))
    ---------------------------------------------------
    3

    二、元组

    另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改

    元组特点:是不可变

    定义:与列表类型比,只不过[  ]换成() ,如:age=(11,22,33,44,55)

    作用:存多个值,对比列表来说,元组不可变(是可以当做字典的key的)

    元组的查找

    index

    从左往右返回第一个遇到的指定元素的索引,如果没有,报错

    count

    返回元组当中指定元素的个数

    1、创建元组

    num = (11,22,33,44)
    print(type(num))
    print(num)
    ----------------------------------------------
    <class 'tuple'>
    (11, 22, 33, 44)

    定义一个空的tuple,可以写成():

    num2 = ()
    print(type(num2))
    --------------------------------------------
    <class 'tuple'>

    但是,如果定义一个只有一个元素的tuple,需要加,:

    num3 = (22)
    print(type(num3))
    num4 = (22,)
    print(type(num4))
    -----------------------------------------------------------
    <class 'int'>
    <class 'tuple'>

    2、访问元组

    num = (11,22,33,44)
    print(num)
    print(num[2])
    -----------------------------------------
    (11, 22, 33, 44)
    33
    num = (11,22,33,44)
    print(num)
    print(num.index(44))  #取索引
    print(num.count(22))  #计数
    -------------------------------------------------
    (11, 22, 33, 44)
    3
    1

    3、修改元组

    说明:Python中不允许修改元组的数据,包括不能删除其中的元素。

    元组是不可变的,也就是说,元组中的元素在被赋值后不能改变。但是,如果元素本身是一个可变数据类型的列表,那么其嵌套项可以被改变。

    aa = (1,2,[11,22,33])
    print(id(2))  #查看id
    aa[2][0] = 44
    print(aa)
    print(id(2))  #id是一致的
    --------------------------------------------------------
    140730237805232
    (1, 2, [44, 22, 33])
    140730237805232

    4、多维元祖访问

    person = (("刘备","关羽","张飞"),("曹操","典韦"),("孙权","周瑜"))
    print(person[2])
    print(person[0][0])
    -----------------------------------------------------
    ('孙权', '周瑜')
    刘备
  • 相关阅读:
    linux之iptable案例
    nginx常用命令参数
    laravel中的多对多关系详解
    MySql计算时间差函数
    总结下Mysql分表分库的策略及应用
    swoole扩展实现真正的数据库连接池
    linux常用命令整理
    innodb mvcc实现机制
    mysqlslap 压力测试使用总结
    mysql索引总结
  • 原文地址:https://www.cnblogs.com/renyz/p/11506884.html
Copyright © 2020-2023  润新知