python基础之列表list

1、列表list 是一组数据组合到一起,有序可变的集合

       语法格式: 列表名 = [元素1, 元素2, ... 元素n] 

       注:不同元素之间用 , 隔开

       注:列表中的元素类型可以不同

       创建列表:空列表,带有元素的列表,带有不同类型的元素的列表,list中可以包含list类型的元素

list1 = []
list2 = [1, 2, 3, 4]
list3 = [1, 2.3, "abc", None, True]
list4 = [1, 2, [55, 66, 77], 8, 9]

2、访问列表中的元素

          取值: 格式:列表名[下标/索引/index] 下标从0开始,下标不能越界, 最后一个元素的下标 len(list) - 1

                   下标可以写负数 -1:代表最后一个元素 , 负数代表从右向左查

          更新数据

              语法: 列表名[下标] = 新值

         列表的截取

              语法格式:列表名[[起始下标start]:[结束下标stop][:][递增基数step]]

                          start:截取列表的起始位置(包含),可以省略该参数,默认值为0

                          stop:截取列表的结束位置(不包含),可以省略该参数,默认值为长度

                          step:步长,间隔数,默认值为1,可以写负数, -1:从右向左截取

              反转列表: print(list8[::-1])

              截取所有元素  print(list8[:])    print(list8[::])

              判断元素是否在列表中 in not in

3、n维列表

      二维列表 list中的元素类型还是list类型

         list1 = [[1, 2, 3], [11, 22, 33], [111, 222, 333]]

      三维列表

         list2 = [[[1,2],[3,4]],[[5,6],[7,8]],[[9,0],[11,12]]]

4、获取列表的元素个数 len(list)

5、增删改查

      1、增加数据

            append : 在列表末尾添加新的元素

                           list.append(obj) : 将obj作为一个整体添加到list列表中

            extend : 在列表末尾添加新的元素

                          list.extend(iter) : 在列表末尾一次性追加iter里面所有的元素(将iter中的元素拆开添加) 注:iter为集合类型

           insert 插入数据

                          list.insert(index,obj) 在指定的index下标位置新增元素,该下标原来的的数据不会被覆盖,原数据依次向后顺移。 obj:任意类型数据

       2、更改数据

            list4 = [1, 2, 3, 4]

            list4[1] = 200

       3、删除数据

             pop : 删除数据

                          pop([index]) : 删除指定index位置的元素,如果不指定index,默认删除最后一个元素

                          pop有返回值,将删除的数据返回

             remove 删除数据

                          list.remove(obj) 删除匹配到的第一个obj,删除的元素要求在列表中存在,不存在报错

             clear:清空列表

                          list.clear() 清除列表中所有的元素

6、列表的其他方法

      获取列表的元素个数    len(list)

      返回列表中最大的元素   max(list)

      返回列表中最小的元素   min(list)

      返回列表中某个元素出现的次数   list.count(obj)    返回list中obj出现的次数

      排序    list.sort(reverse) 将列表中的元素排序,默认reverse= Flase升序/正序

                当元素为数字类型时,按数字大小排序;当元素为字符串类型时,按ASCII排序。

      倒序排列   list.sort(reverse=True)

7、拷贝

      浅拷贝 : 同一个内存地址,拥有不同的变量名称

import copy
print("-----------------")
arr7 = [[1,2,3],[6,7,8]]
arr8 = copy.deepcopy(arr7)
print(id(arr7))
print(id(arr8))
print(id(arr7[0]))
print(id(arr8[0]))

      深拷贝(仿深拷贝) : 复制数据,将复制的数据放到新的内存地址中

                              注:列表中的可变数据类型的内存地址一样

arr3 = [1,2,3,4]
arr4 = arr3.copy()
print(arr3) # [1, 2, 3, 4]
print(arr4) # [1, 2, 3, 4]
print(id(arr3)) # 1759068017160
print(id(arr4)) # 1759068017032
arr3[0] = 100
print(arr3) # [100, 2, 3, 4]
print(arr4) # [1, 2, 3, 4]

#
print("**************************")
arr5 = [[1,2,3,4],[6,7,8,9]]  
print(arr5)  # [[1, 2, 3, 4], [6, 7, 8, 9]]
arr6 = arr5.copy()
print(arr6)  # [[1, 2, 3, 4], [6, 7, 8, 9]]
print(id(arr5)) # 1759068017224
print(id(arr6)) # 1759068017288

arr5[0][0] = 100
print(arr5) # [[100, 2, 3, 4], [6, 7, 8, 9]]
print(arr6) # [[100, 2, 3, 4], [6, 7, 8, 9]]
print(id(arr5[0])) # 1759068017096
print(id(arr6[0])) # 1759068017096

      

      真正的深拷贝,:初始数据一致,内存地址不一致

import copy
print("-----------------")
arr7 = [[1,2,3],[6,7,8]]
arr8 = copy.deepcopy(arr7)
print(id(arr7))# 1759068429960
print(id(arr8))# 1759068429896
print(id(arr7[0])) # 1759068115592
print(id(arr8[0])) # 1759068429832

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值