zoukankan      html  css  js  c++  java
  • Python 列表list

    列表list: [ ]

    类似Java中的数组. 通过索引可以取到具体位置上的值.

    1 names = ["ZhangYang","WangGui","LiQiang"]
    2 print(names)
    3 print(names[0])
    1 #取数组中相邻的一些数
    2 names = ["Ada","Sasha","Rose","Luke","Sara"]
    3 print(names[1:3])   #顾头不顾尾, 这样写是取索引为1和2的值.

     切片

     1 #取数组最后一位的值
     2 print(names[-1]) #从右向左数第一位. 也可以[-2],就是取倒数第二位的值.
     3 
     4 #取数组最后两位的值
     5 print(names[-1:-3]) #这样写会报错,因为系统是从左向右数的, 所以-1数完后边已经没有了.
     6 
     7 print(names[-3:-1]) #正确写法
     8 
     9 #取倒数第二个和倒数第三个
    10 print(names[-2:])
    11 
    12 #取前两位
    13 print(names[3]) #相当于print(names[0:3]), 0省略了

    追加

    1 names.append("Nick")

    添加数据并放在中间的位置.  / 修改.

    1 names = ["Ada","Sara","Candy","Cathy","Jessica","Diana"]
    2 
    3 #添加数据插入Sara前面
    4 names.insert(1,"Venus")  #想放在哪个位置,参数就写对应的索引.
    5 
    6 
    7 #修改. 把Candy换掉.
    8 names[2] = 'XieDi"

    删除

    1 #删除方法1:
    2 names.remove("Ada")
    3 
    4 #删除方法2:
    5 del names[0]
    6 
    7 #删除方法3:
    8 names.pop()  #默认删掉最后一个值.
    9 names.pop(1)  #等同于del names[1]

    查找 / 清空

     1 # 查找Ada的位置
     2 print(names.index("Ada"))
     3 print(names[(names.index("Ada")] #根据找到的索引打印出对应位置的值
     4 
     5 
     6 #当存在重复数据时, 计算重复数据的个数
     7 names = ["Ada","Sara","Cathy","Candy","Diana","Ada"]
     8 print(names.count("Ada"))
     9 
    10 
    11 
    12 #清空列表
    13 names.clear()

    反转 / 排序

    1 #反转列表
    2 names = ["Ada","Sara","Cathy","Candy","Diana","Ada"]
    3 
    4 names.reverse()
    5 
    6 
    7 #排序
    8 names.sort()

    添加列表 (类似合并数组)  / 删掉列表

    1 #合并列表
    2 names2 = [1,2,3,4]
    3 
    4 names.extend(names2)
    5 
    6 
    7 #删掉列表names2
    8 del names2

    extend和append的区别:

     1 a = ['1','2','3']
     2 b = ['2','0']
     3 c = ['6','3']
     4 a.extend(b) # 将另一个列表的元素添加到当前列表中
     5 print(a)
     6 print('=====================================')
     7 a.append(c) # 将另一个列表作为一个元素添加到当前列表中
     8 print(a)
     9 
    10 '''
    11 返回值
    12 ['1', '2', '3', '2', '0']
    13 ======================================
    14 ['1', '2', '3', '2', '0', ['6', '3']]
    15 '''

    复制

    1 #复制
    2 name2 = names.copy()

    数组包含数组时修改内嵌数组中的数据

     1 # 数组包含数组时修改内嵌数组中的数据
     2 
     3 # 方法1 : copy 浅复制
     4 # 数组中内嵌数组的内容在复制时,其实复制的是该内嵌数组的地址,所以当修改该内嵌数组中的数据时,无论原始数组还是复制后的数组,其内嵌数组中的数据都会随之改变.
     5 # 但是原始数组中其他值则是直接将该值指向复制后的数组,所以当原始数组中这些值改变时,复制后的数组对应位置的值保持不变.
     6 names = ["Ada","Jessica","Cathy","Candy","Luke",["ada","Sara","Mika"]]
     7 
     8 names2 = names.copy()
     9 names[2] = "Lucy"
    10 names[5][0] = "ADA"
    11 print(names) # Cathy被修改成Lucy;  ADA改成大写.
    12 print(names2) # Cathy不改变. ADA改成大写
    13 
    14 
    15 # 方法2: import copy, 调用copy.copy()方法和列表中的copy()一样效果
    16 import copy
    17 names3 = copy.copy(names)
    18 names[0] = "Lucy"
    19 names[5][1] = "ADA"
    20 print(names) # Cathy被修改成Lucy;  ADA改成大写.
    21 print(names3) # Cathy不改变. ADA改成大写
    22 
    23 
    24 # 方法3: import copy, 调用copy. deepcopy()方法. 深copy, 可以达到复制内嵌列表中值的效果
    25 names4 = copy.deepcopy(names)
    26 names[3] = "Lucy"
    27 names[5][0] = "ada"
    28 print(names) # Cathy被修改成Lucy;  ADA改成大写.
    29 print(names4) # Cathy不改变. ADA也不改变
    30 
    31 
    32 # 方法4, 切片的方式实现浅copy
    33 names5 = names[:]
    34 
    35 
    36 # 方法5, 另外一种浅copy的方法
    37 names6 = list(names)
    38 
    39 
    40 # 浅copy在银行公共帐户情形中非常有用. 夫妻二人共开同一个帐户时,每个人取钱都会影响帐户中的总额.

    列表的循环 / 跳着打印列表中的值

    1 # 列表的循环
    2 for i in names:
    3     print(i)
    4 
    5 # 跳着打印列表中的值
    6 print(names[0:-1:2]) # 每隔一个打印一次. 2代表步长.
    7 print(names[::2]) # 0和-1都可以省略,所以写成这样.
  • 相关阅读:
    leetcode 350. Intersection of Two Arrays II
    leetcode 278. First Bad Version
    leetcode 34. Find First and Last Position of Element in Sorted Array
    leetcode 54. Spiral Matrix
    leetcode 59. Spiral Matrix II
    leetcode 44. Wildcard Matching
    leetcode 10. Regular Expression Matching(正则表达式匹配)
    leetcode 174. Dungeon Game (地下城游戏)
    leetcode 36. Valid Sudoku
    Angular Elements
  • 原文地址:https://www.cnblogs.com/cheese320/p/8782928.html
Copyright © 2011-2022 走看看