当前位置:   article > 正文

Python 列表的认识与运用

Python 列表的认识与运用

一.列表的认识

        列表是python中最灵活的有序序列,它可以储存任意的元素。开发人员可对其进行添加,删除,修改等操作。列表是一个可变序列!!!

二.列表的创建

        1.使用[ ]创建列表:

         

        以上通过[ ] 创建了两个列表list_one和list_two。list_one 和list_two中分别是空列表和含有

        1,2,3三个元素的列表

2.使用list()构造新列表

 使用list()创建了三个列表,其中list1为空,而向list2传递了一个字符串"python"存储到list2中得到6个元素'p','y','t','h','o','n'。向list3中传递了一个可迭代对象range(5)得到了一个0~4的五个元素的列表

3.通过列表推导式创建新列表     

[生成列表元素的表达式 for 表达式中的变量 in 变量要遍历的序列]

列表推导式的使用可以快速生成满足特定需求的列表,使代码的可读性增强

  1. #列表推导式
  2. #[生成列表元素的表达式 for 表达式中的变量 in 变量要遍历的序列]
  3. #[生成列表元素的表达式 for 表达式中的变量 in 变量要遍历的序列 if过滤条件]
  4. #也可以存在多个for循环
  5. #[生成列表元素的表达式 for 表达式中的变量1 in 变量要遍历的序列1 for 表达式中的变量2 in 变量要遍历的序列2 if过滤条件]
  6. a = [x**3 for x in range(1,4)]#[1, 8, 27]
  7. print(a)
  8. b = [y*2 for y in range(1,7) if y != 3]#[2, 4, 8, 10, 12]
  9. print(b)
  10. c = [1 for i in range(5)]
  11. print(c)

        上图的代码可见列表推导式的创建其中for循环不一定为一个可以有多个循环存在要因题而议 ,也可以使用if语句进行过滤

三.列表的操作

        1.列表的访问

        学习过C语言的同学都知道,在C语言中访问数组中的某个元素可以通过下标寻找,对列表的访问其实跟C语言相似但比起更加简单,列表的访问既可以从正向访问也可以逆向访问。

  1. list1 = [1, 2, 3, 4, 5, 6]
  2. print(list1[0])#输出1
  3. print(list1[-6])#输出1

上方代码中对于list1列表的0和-6所输出的值都是1,说明列表的访问既可以从右向左,也可以从左向右。

        列表是一个可以修改的可变序列数据类型,可以通过下标对指定位置进行修改。

  1. word = "python"
  2. list2 = list(word)
  3. print(list2)
  4. list2[0] = 1
  5. print(list2)

上方代码对lsit2中第1个元素的值进行了更改,就是通过下标进行的。

        2.列表的切片

   切片是指对序列截取其中的一部分形成新的列表

   语法格式: [起始索引(start):结束索引(stop):步长(step)]

切片要点:

1.截取范围:左闭右开

2.步长取值:可正可负,默认即为1

  1. list_1 = [1, 2, 3, 4, 5, 6]
  2. lst = list_1[0:4]
  3. print(lst) # 输出[1, 2, 3, 4]
  4. lst = list_1[0:4:2]
  5. print(lst) # [1, 3]
  6. """取步长为负数,切片从后向前"""
  7. lst = list_1[5:0:-1]
  8. print(lst) # [6, 5, 4, 3, 2]

 当step>0时,start默认为0,stop默认为len(list_1)

 当step<0时,start默认为-1,stop默认为-len(list_1)

  1. list_1 = [1, 2, 3, 4, 5, 6]
  2. lst = list_1[:]
  3. print(lst)#[1, 2, 3, 4, 5, 6]
  4. lst = list_1[::-1]
  5. print(lst)#[6, 5, 4, 3, 2, 1]

四.列表的运算 

        列表的运算包括,‘+’,‘ * ’,及列表之间的比较

        1.列表加法的运算

                ‘+’以两个列表为操作数,可以将两个列表组合成一个新列表

  1. word = "python"
  2. list_1 = [1, 2, 3, 4, 5, 6]
  3. list_2 = list(word)
  4. lst = list_1+list_2
  5. print(lst)#[1, 2, 3, 4, 5, 6, 'p', 'y', 't', 'h', 'o', 'n']
         2.列表相乘

                ‘ * ’用数字n与列表1相乘,会得到一个重复n次的列表2

  1. list_1 = [1, 2, 3, 4, 5, 6]
  2. lst = list_1*3
  3. print(lst)#[1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6]
         3.列表的比较

                列表的比较与字符的比较相识,是使用>,>=,<,<=,==,!=进行比较。列表的比较是从第一个元素开始也就是下标为0的元素,如果第一个元素相同则顺势比较下一个元素,直至比较出大小。

  1. list_1 = [1, 2, 3, 4, 5, 6]
  2. list_2 = [1, 3, 3, 4, 5, 6]
  3. list_3 = ['p','y','t','h','o','n']
  4. print(list_1<list_2)#True
  5. print(list_1!=list_2)#True
  6. print(list_1 == list_1)#True

五.列表函数

​​​​​

        1.列表常用删除方法 

del list[i:j:k] , list.clear() , list.pop(i) , list.remove(x)

        1.del list[i:j:k]方法:   删除list列表中的第i到j(不包括j)步长为k的元素,步长为1时可以省略

  1. list_1 = [1, 2, 3, 4, 5, 6]
  2. del list_1[0]
  3. print(list_1)#[2, 3, 4, 5, 6]
  4. list_2 = [1, 2, 3, 4, 5, 6]
  5. del list_2[0:4:2]
  6. print(list_2)#[2, 4, 5, 6]

 del 方法可以删除指定位置的元素,并且不返回值。

        2.list.clear()方法 移除list列表中的所有元素==del list[:] 

  1. list_1 = [1, 2, 3, 4, 5, 6]
  2. print(list_1)#[1, 2, 3, 4, 5, 6]
  3. list_1.clear()
  4. print(list_1)#[]

        3. list.pop(i)方法 移除list列表的第i位元素,并且返回第i位元素的值,若i==1可以省略

  1. list_1 = [1, 2, 3, 4, 5, 6]
  2. print(list_1)#[1, 2, 3, 4, 5, 6]
  3. print(list_1.pop(2))# 3
  4. print(list_1)#[1, 2, 4, 5, 6]

         4.list,remove(x)方法 移除list列表中第一次出现的元素x

  1. list_1 = [1, 2, 3, 4, 5, 6,1]
  2. print(list_1)#[1, 2, 3, 4, 5, 6,1]
  3. list_1.remove(1)
  4. print(list_1)#[2, 3, 4, 5, 6, 1]

 2.列表常用函数 

max(list) , min(list) , len(list) , sum(list) , sorted(list) , list.sort() , list.count() , list.reverse() , list.extend(list2) ,  list.index(x) , list.inset(i,x),list.append(x)

        1.max,min,len,s        um,sorted等属于python 内置函数,操作结果以返回值返回并不会改变原有列表

        max()函数是返回列表中最大值元素

        min()函数是返回列表中最小值元素

        len()函数是返回列表中的元素个数

        sun()函数是返回列表中的元素和

        

  1. list_1 = [1, 2, 3, 4, 5, 6, 1]
  2. print(max(list_1)) # 6
  3. print(min(list_1)) # 1
  4. print(len(list_1)) # 7
  5. print(sum(list_1)) # 22

        sorted(iterable, /, *, key=None, reverse=False)函数是返回排序后的列表,默认为升序,reverse = Ture时为降序

        key ----是表示指定的排序规则,默认值为None,意味直接比较数列元素

  1. list_1 = [1, 2, 3, 4, 5, 6, 1]
  2. lst = sorted(list_1, key=lambda x: -x)
  3. print(lst)#[6, 5, 4, 3, 2, 1, 1]

         上方代码的key我并没有设为默认值,而是让按照list_1列表的元素全部取反的规则进行运算

2.list.sort() 函数

        此方法与sorted(list)方法类似都是对列表元素进行排序,但此方法改变原有数列,且不返回任何值

        list.sort(iterable, /, *, key=None, reverse=False)

        key ----是表示指定的排序规则,默认值为None,意味直接比较数列元素 

        reverse ----若其等于False排序方式是升序,若等于True排序方式是降序

  1. list_1 = [1,3,2,4,6,4,3,2,5]
  2. list_1.sort()
  3. print(list_1)#[1, 2, 2, 3, 3, 4, 4, 5, 6]
  4. list_2 = [1,3,2,4,6,4,3,2,5]
  5. list_2.sort(reverse=True)
  6. print(list_2)#[6, 5, 4, 4, 3, 3, 2, 2, 1]

3.list.count(x)函数

用于统计字符串里某个字符或子字符串出现的次数,也可以用于列表返回元素x在列表里的个数

语法:

list.count(元素)      star与end 不适用于列表!!!

str.count(sub,start = 0,end = len(str))                           

sub ------- 搜索字符串

start ------- 开始搜索的位置,默认是第一个字符或元素其索引值是‘ 0 ’

end -------- 搜索结束的位置

  1. word = "hello python"
  2. print(word.count('e', 1, 3)) # 1
  3. print(word.count('o')) # 2
  4. list_1 = list(word)
  5. print(list_1.count('l'))# 2

4.list.reverse()函数

将列表的各元素逆序

本方法与a.sort()并不一样,a.sort()是将列表按大小重新排序,而reverse()仅仅就是逆反了一下

  1. list_1 = [1, 2, 3, 4, 5, 6]
  2. list_2 = [1, 2, 3, 4, 5, 6, 2, 3, 4]
  3. list_1.reverse()
  4. list_2.reverse()
  5. print(list_1) # [6, 5, 4, 3, 2, 1]
  6. print(list_2) # [4, 3, 2, 6, 5, 4, 3, 2, 1]

 5.list.append(x)函数

将元素x添加到列表的末尾(等同于list[len(list)] = x)

  1. list_1 = [1, 2, 3, 4, 5, 6]
  2. list_1.append('a')
  3. print(list_1)# [1, 2, 3, 4, 5, 6, 'a']

 6.list.insert(i,x)函数

在列表的索引i位置插入元素x

  1. list_1 = [1, 2, 3, 4, 5, 6]
  2. list_1.insert(0,'a')
  3. print(list_1)# ['a', 1, 2, 3, 4, 5, 6]

 7.list.index()函数

用于从列表中找出某一个值第一个匹配项的索引位置

list.index(obj)

obj ----  查找对象

返回值是对象索引位置,如果对象不存在则抛出异常

  1. list_1 = [1, 2, 3, 4, 5, 6, 1, 2, 1]
  2. print(list_1.index(1)) # 0
  3. print(list_1.index(6)) # 5
  4. print(list_1.index('a')) # ValueError: 'a' is not in list

8.list.extend(iterable)函数

用于将一个可迭代对象添加到当前列表的末尾

list.extend(iterable)

list        ------         想扩展的列表

iterable ------         可以是任何的可迭代对象,例如列表,元组,字典等

  1. list_1 = [1, 2, 3, 4, 5]
  2. #添加列表
  3. list_2 = ['a','b','c']
  4. list_1.extend(list_2)
  5. print(list_1)#[1, 2, 3, 4, 5, 'a', 'b', 'c']
  6. #添加元组
  7. tuple_1 = (2024,5,24)
  8. list_1.extend(tuple_1)
  9. print(list_1)#[1, 2, 3, 4, 5, 'a', 'b', 'c', 2024, 5, 24]
  10. #添加字典
  11. """字典只能添加键!!!"""
  12. dict_1 = {'001':1}
  13. list_1.extend(dict_1)
  14. print(list_1) #[1, 2, 3, 4, 5, 'a', 'b', 'c', 2024, 5, 24, '001']

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/583143
推荐阅读
相关标签
  

闽ICP备14008679号