python - 列表,元组

时间:2022-06-27 20:41:00
1、列表
 
    定义:能装对象的对象
    在python中使用[] 来描述列表,内部元素用逗号隔开,对数据类型没有要求。
    列表存在索引和切片,和字符串的操作是一样的
 
2、列表相关的增删改查操作
    
      添加:
               1、append()  追加,在后面添加
                2、insert(位置,元素),效率相对较低 
                3、extend( )    迭代添加,把传递进去的参数进行迭代,把每一项添加到表的末尾(如果参数是字符串,将会把每个字符当成一个元素迭代添加到列表中)
lst = ['qian','钱','money','doll']
lst.extend('冷暖自知')
lst.extend(['力量','盟友'])
print(lst)
# ['qian', '钱', 'money', 'doll', '冷', '暖', '自', '知', '力量', '盟友']

  

  删除:
             1、pop() 默认从后往前删除   pop(索引) 根据索引删除
             2、remove(元素)  根据元素删除 ,当元素不存在时,会报错
             3、del  lst[start:end:step]   根据索引或者切片删除
             4、clear()   清空
  
   修改:
             1、索引修改
              2、ls[索引] =  元素
 
           注:报错:IndexError: list assignment index out of range   索引下标越界
 
   迭代更新
lst = ['大树','白云','小鸟','蝴蝶','蜜蜂']
lst[3:] = '小动物'
print(lst)
# ['大树', '白云', '小鸟', '小', '动', '物']

  切片更新

lst = ['大叔','白云','小鸟','蝴蝶','蜜蜂','苍鹰']
lst[3:5] = ['星星']
print(lst)
# ['大叔', '白云', '小鸟', '星星', '苍鹰']

  

 如果步长不为1,元素的个数必须要和切片的个数一致不然会报错
ValueError: attempt to assign sequence of size 1 to extended slice of size 2
lst = ['大叔','白云','小鸟','蝴蝶','蜜蜂','苍鹰']
lst[1:4:2] = ['宇宙','黑洞']
print(lst)
# ['大叔', '宇宙', '小鸟', '黑洞', '蜜蜂', '苍鹰']

  

  查询:(列表是一个可迭代对象)
 
     for 循环
lst = ['大叔','白云','小鸟','蝴蝶','蜜蜂','苍鹰']

for item in lst:      # lst  是   item  中的每一项

  print(item)

  

for i in 123:
  print(i)

  报错:TypeError: 'int' object is not iterable

3、列表的嵌套
 
     多个列表互相嵌套(降维操作)
 
4、列表的其他操作
 
     1、count(xxx)   计数   查看xxx 元素出现的次数
     2、 sort()  排序(升序)   sort(reserve  =  True)  倒序
     3、reverse()  将列表元素翻转过来
li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
li.reverse()
print(li)
# ['wenzhou', 'barry', 'ritian', 'WuSir', 'alex']

  

   4、len() 列表长度  查看列表中元素的个数
 
     查看list 的其他操作    list  按住ctrl +鼠标左键
 
5、元组
 
     能装对象的对象,不可变,一旦确认好,不可更改。  用()表示,只读列表
     注:
    tu = tuple()   #空元组  固定写法
    tu  = (1) 不是元组  print(type(tu))   # <class 'int'>
    tu  =  (1,)   元组中只有一个元素      #< class 'tuple'>
 
   好习惯:写元组的时候末尾加个逗号
   元组也是可迭代的 ,可以使用for循环
  
tu = ('规格','面积','大小',['正方形','圆形'])
tu[3].append('长方形')
print(tu)
# ('规格', '面积', '大小', ['正方形', '圆形', '长方形'])
# 元组没改,改的是元素内部,没有改变元组的指向,所以不报错

  

6、range  数数
    
     range(n)    [0,n)
     range(m,n)   [m,n)
     range(m,n,p)  [m,n)   每隔p取一个
lst = ['你是水','我是冰']
for i in range(len(lst)):
  print(i , lst[i])
# 0 你是水
# 1 我是冰