深入了解和运用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 变量要遍历的序列]

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

#列表推导式
#[生成列表元素的表达式  for 表达式中的变量 in 变量要遍历的序列]
#[生成列表元素的表达式  for 表达式中的变量 in 变量要遍历的序列 if过滤条件]
#也可以存在多个for循环
#[生成列表元素的表达式  for 表达式中的变量1 in 变量要遍历的序列1  for 表达式中的变量2 in 变量要遍历的序列2 if过滤条件]

a = [x**3 for x in range(1,4)]#[1, 8, 27]
print(a)
b = [y*2 for y in range(1,7) if y != 3]#[2, 4, 8, 10, 12]
print(b)
c = [1 for i in range(5)]
print(c)

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

三.列表的操作

        1.列表的访问

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

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

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

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

word = "python"
list2 = list(word)
print(list2)
list2[0] = 1
print(list2)

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

        2.列表的切片

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

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

切片要点:

1.截取范围:左闭右开

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

list_1 = [1, 2, 3, 4, 5, 6]
lst = list_1[0:4]
print(lst)  # 输出[1, 2, 3, 4]

lst = list_1[0:4:2]
print(lst)  # [1, 3]

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

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

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

list_1 = [1, 2, 3, 4, 5, 6]

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

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

四.列表的运算 

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

        1.列表加法的运算

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

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

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

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

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

list_1 = [1, 2, 3, 4, 5, 6]
list_2 = [1, 3, 3, 4, 5, 6]
list_3 = ['p','y','t','h','o','n']
print(list_1<list_2)#True
print(list_1!=list_2)#True
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时可以省略

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

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

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

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

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

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

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

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

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

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

list_1.remove(1)
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()函数是返回列表中的元素和

        

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

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

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

list_1 = [1, 2, 3, 4, 5, 6, 1]
lst = sorted(list_1, key=lambda x: -x)
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排序方式是降序

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

list_2 = [1,3,2,4,6,4,3,2,5]
list_2.sort(reverse=True)
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 ——– 搜索结束的位置

word = "hello python"
print(word.count('e', 1, 3))  # 1
print(word.count('o'))  # 2

list_1 = list(word)
print(list_1.count('l'))# 2

4.list.reverse()函数

将列表的各元素逆序

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

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

 5.list.append(x)函数

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

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

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

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

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

 7.list.index()函数

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

list.index(obj)

obj —-  查找对象

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

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

8.list.extend(iterable)函数

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

list.extend(iterable)

list        ——         想扩展的列表

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

list_1 = [1, 2, 3, 4, 5]

#添加列表
list_2 = ['a','b','c']
list_1.extend(list_2)
print(list_1)#[1, 2, 3, 4, 5, 'a', 'b', 'c']

#添加元组
tuple_1 = (2024,5,24)
list_1.extend(tuple_1)
print(list_1)#[1, 2, 3, 4, 5, 'a', 'b', 'c', 2024, 5, 24]

#添加字典
"""字典只能添加键!!!"""
dict_1 = {'001':1}
list_1.extend(dict_1)
print(list_1) #[1, 2, 3, 4, 5, 'a', 'b', 'c', 2024, 5, 24, '001']

物联沃分享整理
物联沃-IOTWORD物联网 » 深入了解和运用Python列表

发表评论