python列表和列表的相关运算主要参考 ,改动较⼩
⼀、列表
数据类型:数字类型、字符串、列表、字典、元祖、集合、迭代器、⽣成器、函数
1、什么是列表(list)
相当于其他语⾔的数组。
列表是Python提供的容器型数据类型。可变并且有序。
可变 - 列表中的每个元素的值可变,列表的长度可变,列表中的顺序可变。(⽀持增、删、改)有序 - 每个元素可以通过下标来确定位置
2、列表的字⾯量
通过[]括起来,⾥⾯有多多个元素,每个元素⽤逗号隔开。例如:
# ⽤逗号隔开的是列表的元素
[1,2,3]
# Python列表中的元素可以是任何Python⽀持的类型
# 并且同⼀个列表中不同元素的类型可以不⼀样
[10,'abc',True]
# 任何类型的数据都可以作为列表的元素
a =10
list1 =[a,132,'abc',True,10.23,[1,2],{'a':10}]
# 空列表
[]
3、获取列表元素
和字符串获取字符的语法⼀样
a、获取单个元素
列表[下标]# 获取列表中指定下标对应的元素
例:
list1 =[1,2,3,4]
print(list1[0])# 1
print(list1[-1])# 4
b、获取部分元素(切⽚)
字符串的结果都是新的字符串,列表的结果是列表。语法:
列表[开始下标:结束下标:步长]
例⼦:
list1 =['a','b','c','d','e']
print(list1[1:3])
python获取数组长度
print(list1[-3:3])
print(list1[:2])
print(list1[::-1])
c、⼀个⼀个的取出所有元素(遍历)
⽅法⼀:可以使⽤for循环直接遍历列表拿到每个元素。
操作元素的时候与下标⽆关⽤此⽅式。
list1 =['a','b','c','d','e']
for item in list1:
print(item)
⽅法⼆:通过遍历列表中列表元素的下标来遍历列表元素。
操作元素的时候和下标有关⽤此⽅式。
list1 =['a','b','c','d','e']
for index in range(len(list1)):
print(list1[index])
⼆、增删改
1、增(添加列表元素)
a、append
在指定的列表的最后添加指定的元素。
列表.append(元素)
例:
list1 =[1,2,3,4,5]
list1.append(6)
print(list1)# [1, 2, 3, 4, 5, 6]
b、insert
在指定的下标前插⼊指定的元素。
列表.insert(下标,元素)
例:
list1 =[1,2,3,4,5]
list1.insert(3,3.5)
print(list1)# [1, 2, 3, 3.5, 4, 5]
2、删
a、del
删除指定下标的元素,del是关键字,可以删除任何东西。
如果不加下标就删除整个列表。
注意:如果下标越界就会报错。
del列表[下标]
del列表
例:
list1 =[1,2,3,4,5]
del list1[0]
print(list1)# [2, 3, 4, 5]
注意:不管增加还是删除都是在原列表做改动,下标会重新分配。
b、remove
不是通过下标来删除,是通过元素来删,如果没有此元素程序报错。
列表.remove(元素)
例1:
list1 =[1,2,3,4,5]
print(list1)# [1, 2, 3, 4]
例2:
list1 =[1,2,5,4,5]
print(list1)# [1, 2, 4, 5]
注意:remove删除元素时,有重复的元素,只删从左往右的第⼀个。
c、pop
相对于del 和 remove 来说,pop删除时,有返回值(返回的是被删除的元素);⽽del 和 remove没有返回值
列表.pop()
列表.pop(下标)
不带参数时,pop将列表中最后⼀个元素从列表中取出;
带下标时,pop将列表中指定下标对应的元素从列表中取出。
list1 =[1,2,3,4,5,5]
num1 = list1.pop()
print(num1)
print(list1)
删除元素时遇到的两个坑
坑⼀:⽤元素遍历
会遇到的问题:遍历列表删除部分元素,删不全!
# 下标遍历有误
age_list =[14,9,33,44]
for index in range(len(age_list)):
age = age_list[index]
if age <18:
age_list.pop(index)
print(age_list)
# 解决⽅案:遍历的时候段原列表切边复制
# 创建新的列表来保存年龄,来保证删除时下标变动
# 遍历没有变动的元素
# 要⽤remove根据元素来删除
age_list =[1,2,33,44]
temp = age_list[:]
for age in temp:
if age <18:
ve(age)
print(age_list)
坑⼆:下标遍历
会遇到的问题:删不全,⽽且还会越界。
# 以下代码不能实现功能
for index in range(len(age_list)):
age = age_list[index]
if age <18:
age_list.pop(index)
print(age_list)
# 通过while循环控制循环次数,有删除时下标不变。
age_list =[14,9,33,44]
index =0
new_ages =[]
while index <len(age_list):
age = age_list[index]
if age <18:
del_item = age_list.pop(index)
new_ages.append(del_item)
else:
index +=1
print(age_list, new_ages)
3、改
列表[下标]=新值
修改列表中指定下标对应的值
list1 =[1,2,3]
list1[0]='abc'
print(list1)# ['abc', 2, 3]
例⼦:有⼀个列表保存的学⽣的成绩,要求低于60分的改成“下⼀个班见”,并且统计下⼈数。
count =0
scores =[11,22,33,66,77,88]
for index in range(len(scores)):
if scores[index]<60:
count +=1
scores[index]='下⼀个班见'
print('下⼀个班见⼈数共有%d⼈'%count)
print(scores)
三、列表的相关运算
1、相关运算:
a、⽀持+,*运算
列表1+列表2
将两个列表中的元素合并在⼀起产⽣⼀个新的列表。
print([1,2,3]+['a','b','c'])
# [1, 2, 3, 'a', 'b', 'c']
列表*N
将列表中的元素重复N次,产⽣⼀个新的列表
b、⽀持⽐较运算
⽐较⼤写与字符串⽐较⼤⼩相似。
list1 =[1,2,3]
list2 =[1,2,3]
print(list1 == list2)# True
print(list1 ==[1,3,2])# False
2、in 和 not in
元素in列表
判断列表中是否存在指定的元素
print([1,2]in[1,2,3])# False
3、len
len(列表)
获取列表中元素的个数。
print(len([[1,2],2,'a','agc']))#4
4、list
只有序列才可以转换成列表,并且所有的序列都可以转换成列表
list(数据)
转换的时候就是将序列中所有的元素转换成列表的元素
list1 =list('hello')
print(list1)# ['h', 'e', 'l', 'l', 'o']
list2 =list(range(10,20))
print(list2)# [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
注意:不能⽤Python给我们提供的类型的名字来命名,否则会有隐患。
5、序列其他⽅法
max(序列)# 获取序列中值最⼤的元素
min(序列)# 获取序列中值最⼩的元素
sum(序列)# 求序列中所有元素的和
注意:以上三个⽅法,要求序列中的元素类型必须⼀致,并且这个类型⽀持运算和加法运算。(⼀般是数字序列使⽤)
print(max([1,2,3,3,5,5,9]))
print(min([1,2,3,3,5,5,9]))
print(sum(range(101)))# 计算1到100的和
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论