• python『学习之路02』列表中的增删改查


    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Time : 2017/11/17 0:05
    # @Author : mixiu26

    # 一: 列表:
    name = [] #1.定义列表
    name = ["yiyi","erer","xiaoxiao","huahua"] # 向列表中添加元素 ['yiyi', 'erer', 'xiaoxiao', 'huahua']
    print(name)
    # 取出列表元素 yiyi:
    print(name[0]) # 取出列表元素: 列表名[元素索引值] --- >> yiyi
    # 取出xiaoxiao:
    print(name[2]) # xiaoxiao
    # 取出erer,小小:
    print(name[1],name[2]) #erer xiaoxiao
    # 列表切片: --- >> 从列表中切下部分数据
    print(name[1:3]) # ['erer', 'xiaoxiao'] //以小列表的格式取出元素,包括左边不包括右边
    # 切下第一个元素:
    print(name[0]) # yiyi
    # 切下最后一个元素:
    print(name[3]) # huahua

    # 当列表长度不可知,我们想要取出最后一个元素时要怎么办呢? 可以逆向取值: 从右向左数 (从右向左数,-n到-1) 0-,-n <---- (-1)
    print(name[-1]) # huahua
    # 取最后两个值: 注意取出最后两个元素, 因为最后一个是-1,所以即是逆向取值,更小的哪个就要在左边,因为从右往左,最大不能超过-1
    print(name[-3:-1]) # ['erer', 'xiaoxiao'] # ---- >>> 包左不包右的规则通用
    # 那么想取出-1的这个元素怎么办呢?
    print(name[-1]) # ----- >> huahua 两种方式都表示取出最后一个元素
    print(name[-1:]) # ----- >> ['huahua'] ---- >> 这就表示从-1开始往后取, -1就处在左边,包左不包右的原理, -1右边啥也不写,就能取到-1的值
    # 取出0-3 的元素:
    print(name[0:3]) # ['yiyi', 'erer', 'xiaoxiao']
    print(name[:3]) # ['yiyi', 'erer', 'xiaoxiao'] ---- >>二者结果是一样的,0开头可以省略不用写
    # 列表追加元素:
    name.append("jojo"); # append --- >> 追加,尾随, 在末尾添加, 用法跟java一样. sb.append().append()......
    print(name) # ['yiyi', 'erer', 'xiaoxiao', 'huahua', 'jojo']
    # insert ----- >> 指定位置插入元素:
    name.insert(2,"xingxing") # 表示我在第二个位置,插入xingxing这个小伙伴: 那么原来2号索引以后位置的元素索引就要自动往后加1
    print(name) # ['yiyi', 'erer', 'xingxing', 'xiaoxiao', 'huahua', 'jojo'] ----- >> 索引2变成xingxxing
    # 切片修改元素: --- >>直接赋值修改
    name[2] = "paofu"
    print(name) # ['yiyi', 'erer', 'paofu', 'xiaoxiao', 'huahua', 'jojo']
    # 切片: 移除单个元素:
    name.remove("erer")
    print(name) # ['yiyi', 'paofu', 'xiaoxiao', 'huahua', 'jojo']
    # python 自带删除方法:直接del 列表名[索引值]
    del name[1] # ['yiyi', 'xiaoxiao', 'huahua', 'jojo']
    print(name)
    name.append("bajie")
    name.insert(2,"wukong")
    print(name) # ['yiyi', 'xiaoxiao', 'wukong', 'huahua', 'jojo', 'bajie']
    # pop() 删除: 不带索引值删除: 默认删除最后一个元素,带索引值删除, 就等价与remove(index) 删除指定元素
    name.pop()
    print(name) # ['yiyi', 'xiaoxiao', 'wukong', 'huahua', 'jojo']
    name.pop(2)
    print(name) # ['yiyi', 'xiaoxiao', 'huahua', 'jojo']
    # 查找并返回指定元素所在列表的索引
    index = name.index("xiaoxiao")
    print(index) # 1
    # 查找指定索引位置的元素:
    element = name[name.index("xiaoxiao")]
    print(element) # xiaoxiao
    # 统计元素个数:
    # name.append("jojo")
    # name.append("jojo")
    # 因为列表中可有重名元素,所以统计列表中元素jojo的出现的次数:
    print(name.count("jojo")) # ----- >> 3
    # 删除列表所有元素
    # name.clear()
    print(name) # [] # ['yiyi', 'xiaoxiao', 'huahua', 'jojo']
    # 列表元素反转:
    name.reverse()
    print(name) # ['jojo', 'huahua', 'xiaoxiao', 'yiyi']
    # 列表元素排序: sort 排序规则: 特殊字符 --- >> 数字 --- >> 大写字符 --- >> 小写字符 ask码表排序
    name.append("*&*@^%$Uuyt")
    name.append("567$Uuyt")
    name.append("WQEuyt")
    name.append("aauyt")
    print(name) # 排序前: ['jojo', 'huahua', 'xiaoxiao', 'yiyi', '*&*@^%$Uuyt', '567$Uuyt', 'WQEuyt', 'aauyt']
    name.sort()
    print(name) # 排序后: ['*&*@^%$Uuyt', '567$Uuyt', 'WQEuyt', 'aauyt', 'huahua', 'jojo', 'xiaoxiao', 'yiyi']

    # extend 相当于添加另一各个列表所有元素的功能: 相当于java中 arrayList.addarrayList2 ---- > 将集合2中所有元素添加到集合1中,但集合2不会受到任何影响
    name2 = ["ai","qing","gu","shi"]
    name.extend(name2)
    print(name) # ['*&*@^%$Uuyt', '567$Uuyt', 'WQEuyt', 'aauyt', 'huahua', 'jojo', 'xiaoxiao', 'yiyi', 'ai', 'qing', 'gu', 'shi']
    print(name2) # ['ai', 'qing', 'gu', 'shi']
    # 删除列表:
    del name2
    print(name) # ['*&*@^%$Uuyt', '567$Uuyt', 'WQEuyt', 'aauyt', 'huahua', 'jojo', 'xiaoxiao', 'yiyi', 'ai', 'qing', 'gu', 'shi']
    print(name2) # 空, 没有这个变量啦~
  • 相关阅读:
    noi放苹果
    二分 网线主管
    hdu 1421 dp
    hdu 1087 最大上升子序列的和(dp或线段树)
    快速排序+查找
    zoj 1425 最大交叉匹配
    hdu 3501 容斥原理或欧拉函数
    hdu 4671 异面直线的距离
    hdu 3320 计算几何(三维图形几何变换)
    hdu 2857 点在直线上的投影+直线的交点
  • 原文地址:https://www.cnblogs.com/mixiu26/p/7848199.html
Copyright © 2020-2023  润新知