python初学一(list的处理方式)

  • Post author:
  • Post category:python


一、列表的基本知识:


  • 1、列表是可变元素,列表内部函数操作大多是操作list本身,即它原来的数据发生变化,大多内置函数没有


    返回值;也

  • 有存在返回值的:————- 例如:list(iterable


    )、tuple(iterable)     它们的返回值是修改的内容,用变量接收打印,

  • 原数据不变。

  • 2、列表的深浅拷贝的区别(浅拷贝:一级元素相互独立,

    二级及以上元素引用{共用空间}

    ;深拷贝:完全拷贝)

  • 3、引用:常见的 赋值 操作就是 引用(注意引用与浅拷贝之间的区别)



    列表操作中,

    append


    可变元素


    就是一个



  • 引用。



概念:

列表是由一系列按特定顺序排列的元素组成,列表能存储多种类型的数据,其中的元素之间可以没有任何关系

1、列表的创建:

①、直接创建:

②、list与str间的相互转化:


列表与字符串互相转化:

str >>> list
    1、list(iterable)系统函数    #  函数对象必须是iterable,list(iterable);
        print(list("abc"))  #结果:['a','b'.'c']
    2、str.split()  
        print("我们_去_上海".split('_'))    结果:['我们','去','上海']
          # 数据库中存储的类型数据(str类型)
list >>> str
    1、如果list元素全是字符串, 用str.join(iterable)# join的本质:字符串拼接
        print('_'.join(['我们','去','上海']))
    2、如果不全是字符串:
        for 循环 遍历元素,转化为str后拼接

2、列表拼接(+)与重复(*)

1、列表的拼接
str1 = [1,2,]
str2 = ['a','b']
print(str1+str2) ------ 相当于 str1.expend(str2),结果:[1,2,'a','b']
2、列表的重复
str1 = [1,2,]
print(str1*3)    ---------- 结果:[1,2,1,2,1,2]

二、list 数据的基本操作方法:

1、索引与切片:

(1)索引:


  • 特点:

    与str相同 ,用 下标 取值
list1 = [2,3,4,5]
print(list1[2])    ----------- 下标以0 开始

(2)切片:


  • 特点:

    与str 用法类型,不过结果是一个 列表  ,区间

    前闭后开


https://blog.csdn.net/qq_16555103/article/details/83625995

——–  第三节

================================ 切片赋值 与 索引赋值的区别 ========================
1、切片赋值
list1 = [1,2,4,6]
list1[1:3] = 'abcdefghigk'
print(list1)      ---------- [1, 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'g', 'k', 6]
2、索引赋值
list2 = [1,2,3,4]
list2[2] = 'abcdefgt'
print(list2)      ---------- [1, 2, 'abcdefgt', 4]

三、列表元素的增删改查:

1、增加元素:   append、extend、insert


  • 特点:list内部函数,list数据类型不可用赋值的方法增加列表的元素,区别于dict。

①append  追加 : list.append()

append函数没有return值,添加元素保存在原list中。list


  • 注意:列表操作中,

    append


    可变元素


    是一个引用

list1 = [1,2,'a']
list1.append([6,7,8])
print(list1)        # 结果 [1, 2, 'a', [6, 7, 8]]  注意与extend的区别。

②expend 扩展 :list.extend()

list1 = [1,2,'a']
list1.extend([777,888,9999])
print(list1)        #结果   [1, 2, 'a', 777, 888, 9999]

③insert 插入: list.insert(index,值)

list1 = [1,2,'a']
list1.insert(2,[99,000])      # 先索引 后插入值
print(list1)          # 结果  [1, 2, [99, 0], 'a']   

2、删除元素(pop、remove、del 关键字):

① list.pop(index):根据 索引,得到 值

list1 = [1,2,'a'] 
p = list1.pop()   --------------- 支持索引  默认最后一个  return删除元素
print(list1)      --------------- 删除元素后的list
print(p)          --------------- return删除元素
# 结果   [1, 2]
         a

② list.remove(值):根据值 删除,每次只删一个


  • 特点:不知道索引时,指定元素删除,重复元素时

    默认每次只删除第一个,没有return值(None)。删除所有用



  • while循环。

list1 = [1,2,'a',9999,2222,9999,9999]
p = list1.remove(9999)
print(list1)   -------  结果:[1,2,'a',2222,9999,9999]
print(p)       -------  结果:9999
===============================================================================
while 值 in list1:            ---------- 删除所有
    list1.remove(值)

③ 关键字del: 根据 索引,不可访问


  • 用法:

    del list[index]

    ,不加索引时全部删除,即

    删除这个变量

    ,注意与  clear 区别
list1 = [1,2,'a',9999,9999,9999]
del list1[3]           #
print(list1)


3、修改元素和查看元素:

①查找元素:

用索引的方式查找元素。

②修改元素:


  • 特点:用索引赋值的方式修改元素 : list1[index] = ‘    ‘,

    但是不可以利用赋值操作增加 索引范围 以外的元素



  • (增加用append、extend)


4、查找元素是否存在: in、not in  返回bool值

list1 = [1,2,3,4,56]
if 3 in list1:
    print('存在3')
else:
    print('不存在3')

四、list内置函数:

1、list常用的系统函数:max()  取最大值


  • 注意:① 根据每个元素

    第一个字母,

    max 与  min 是按照ASCII码来排序,如果元素是列表,比较大小是按照列表

  • 第一个元素来比较。

  • ② max 、min 也可用于字符串中。

  • ③ 字符串与数字无法比较


list1 = [1,2,'a',9999,9999,9999]   
list2 = ['a78','123','sh']
list3 = [747,888,989]
print(max("29889aA7"))     
print(list1)                #报错  列表中int与str无法比较
print(list2) 
print(list3) 

2、计数count, 扩展extend、索引index:


list1 = [1,2,'a',9999,9999,9999]
print(list1.count(9999))              ----- 结果:3
print(list1.index(9999,4,5))          ----- 结果:4  # 三个参数,只返回第一个值的索引;如果不存在报错

3、反向reverse,排序sort,清空clear,复制copy:


  • 注意     list.sort() 没有返回值,

    改变原list,

    默认从小到大,list.sort(reverse=True) —- 降序

  • list.copy() 相当于浅拷贝

(1)

list.clear()

注意事项:

               清空clear()请注意,可以用 赋值 空列表([]) 来清空。

list1 = [1,2,3]
list2 = []
list2.append(list1)           append追加列表时相当于追加一个 引用,他们共同使用一个内存空间,因此清空list1时list2也跟着清空。
print(list1,list2)
list1.clear()      
print(list1,list2)         # 结果 :  [1, 2, 3] [[1, 2, 3]]
                           #         [] [[]]


#   改进1、
import copy
list1 = [1,2,3]
list2 = []
list2.append(list1)
list2 = copy.deepcopy(list2)             深拷贝         
print(list1,list2) 
list1.clear()               
print(list1,list2)         # 结果 :   [1, 2, 3] [[1, 2, 3]]
                                      [] [[1, 2, 3]]
# 改进2、
        可以将源代码中 list1.clear() 改为 list1 = [] 。 打印结果与 改进1 结果相同。           

五、深浅拷贝与引用:


https://blog.csdn.net/qq_16555103/article/details/83748253

1、引用:


直接赋值:

其实就是对象的引用(别名)。

2、深浅拷贝:

python 中深浅拷贝需要 引入 模块 copy

(1)浅拷贝:

(2)深拷贝:



版权声明:本文为qq_16555103原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。