Lesson 2#01 列表

列表 list

列表是Python中最基本的数据结构。序列中的每个元素都会分配索引,从左至右第一个索引是0,第二个索引是1,依此类推。

列表的创建:

创建一个列表,只需要把用逗号分隔的不同的数据使用方括号括起来即可。例如:

注意:

列表中的值可以是数字,可以是字符,也可以是变量,
列表中的数据可以重复
name = "suyp"
age = 18
sex = "man"
list = [1,2,3,4,5,6,7,"a","b","c","d",'e","f","g',1,2,3,4,5,6,7,name,age,sex]
# 列表中的值可以是数字,可以是字符,也可以是变量,
# 列表中的数据可以重复

列表的索引:

索引用来快速访问列表中值

name = "suyp"
age = 18
sex = "man"
list = [1,2,3,"a","b","c",1,2,3,name,age,sex]
#索引用来访问列表中的值
#此列表中的索引,从左至右分别是0,1,2,3,4,5,6,7,8,9,10,11
#此列表中的索引,从右至左分别是 -1,-2,-3,-4,-5 ,-6,-7,-8,-9,-10,-11,-12

列表的嵌套:

一个列表中可以包含另外一个列表,例如

name = "suyp"
age = 18
sex = "man"
list1 = [1,2,3,"a","b","c",1,2,3,name,age,sex]
list2 = ["suyp","liuzhen","lirs",list1[:]] # list2 中嵌套了list列表
list3 = ["machao","wangcc","wangmeng",["yinsj","weill","liyl"]] #list3中嵌套了一个新的列表

列表的查询和切片:

通过列表的索引查询和切片

切片语法:sequence[start : end : step]

sequence:序列

step:步长

name = "suyp"
age = 18
sex = "man"
list = [1,2,3,"a","b","c",1,2,3,name,age,sex]
print(list[0])  #查询单个值
print(list[-1]) #查询列表的最后一个值
print(list[:])  #查询整个列表
print(list[0:2])    #列表的切片:从左至右查询两个值,顾头不顾尾
print(list[-5:-1])  #列表的切片:查询列表的最后4个值,顾头不顾尾
print(list[-5:])    #列表的切片:查询列的最后5个值
print(list[3:6])    #列表的切片:从列表中间切片

查询列表中值的索引值和重复值:

name = "suyp"
age = 18
sex = "man"
list = [1,2,3,"a","b","c",1,2,3,name,age,sex]
print(list.index("c"))  #快速查找列表中某个值的索引
print(list.count(1))    #快速查找列表中某个值得数量

列表查询的步长:

name = "suyp"
age = 18
sex = "man"
list = [1,2,3,"a","b","c",1,2,3,name,age,sex]
print(list[0:7:2])  #列表数据0-7,以2个步长进行取值,步长不能为0,默认为1
print(list[:7:2])   #和上面的print语句意思相同
print([list[::2]])  #全部列表数据,以2个步长进行取值

列表的修改:

name = "suyp"
age = 18
sex = "man"
list = [1,2,3,"a","b","c",1,2,3,name,age,sex]
list.append("lirs") #追加,追加只在列表最后一位追加
list.insert(0,"liuzhen")    #在列表的第一位之前插入一个数据
list.insert(2,"machao")     #在列表的任意位置插入一个数据
list[5] = "wangcc"      #修改列表中的某个值
list[6:8] = "Gold"      #批量修改,修改过程中,如果位数不够,多余的数值会以插入的形式写入列表中

列表的删除:

pop()的用法

pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值,返回值可以付给变量
语法:list.pop(obj=list[-1])
name = "suyp"
age = 18
sex = "man"
list = [1,2,3,"a","b","c",1,2,3,name,age,sex]
nnn = list.pop()    # pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值,返回值可以付给变量
print("列表删除的内容:",nnn)
print("列表当前的内容:",list)

remove() 用于删除列表中存在的任意值,

注意:

1、该函数的参数是列表中的真实值,不是索引;

 2、如果要删除的值在列表中有重复值,只删除从左起第一个。

name = "suyp"
age = 18
sex = "man"
list = [1,2,3,"a","b","c",1,2,3,name,age,sex]
list.remove(3)      #删除列表中的指定值
print(list)

del :从全局范围删除列表中的数据,可以是列表中的某个索引对应的值,也可以是整个列表

del list[5]     #删除指定列表中的指定索引对应的值
del list[1:5]       #批量删除
del list        #删除list 列表

 列表排序:

列表排序的规则是按照ASCII码表的顺序进行排序的。

单个方法支持同一种类的字符排序,int 和 str 两个类型的字符不能在一个列表中进行排序

list.sort() # 列表排序,正序,不支持int 和 str 一起进行排序
list.reverse()#列表排序,倒序,不支持int 和 str 一起进行排序
list.extend()# 列表扩展,和 两个列表直接相加是一个效果,list1 + list2 
list.clear() # 清空列表

 练习:1:创建一个空列表,命名为names,往里面添加old_driver,rain,jack,shanshan,peiqi,black_girl 元素

# 方法一:赋值,直接赋值会直接替换原列表中的内容为新的值。
names = [ ]
names = ["old_driver","rain","jack","shanshan","peiqi","black_girl"]
# 方法二: .append 方法,在列表的最后插入一个新的元素
names = []
names.append("old_driver")
names.append("rain")
names.append("jack")
names.append("shanshan")
names.append("peiqi")
names.append("black_girl")
# append方法一次只能插入一个新的元素
print(names)
#方法三:extend方法,在原有列表的基础上追加一个新的列表,相当于两个列表相加
names = []
names2 = ['old_driver', 'rain', 'jack', 'shanshan', 'peiqi', 'black_girl']
names.extend(names2)
print(names)

练习2:往names列表black_girl前面插入一个alex

#方法1:insert方法,在已知的元素索引前直接插入,每次只能插入一个元素
names = ['old_driver', 'rain', 'jack', 'shanshan', 'peiqi', 'black_girl']
names.insert(-1,"alex")
print(names)
#方法2:如果列表很大,可以先使用index查出指定元素的索引,根据索引再插入
names = ['old_driver', 'rain', 'jack', 'shanshan', 'peiqi', 'black_girl']
number = names.index("black_girl")
names.insert(number,"alex")
print(names)

练习3:把names列表中的“shanshan”改成中文“姗姗”

names = ['old_driver', 'rain', 'jack', 'shanshan', 'peiqi', 'black_girl']
print(names)
names[3] = "姗姗"
print(names)

练习4:往names列表rain的后面插入一个子列表["oldboy","oldgirl"]

#insert 方法,在指定索引前面加入一个元素
names = ['old_driver', 'rain', 'jack', 'shanshan', 'peiqi', 'black_girl']
print(names)
names2 = ["oldboy","oldgirl"]
number = names.index("rain")
names.insert(number+1,names2)
print(names)

练习5:返回peiqi的索引值

names = ['old_driver', 'rain', 'jack', 'shanshan', 'peiqi', 'black_girl']

print(names.index("peiqi"))

练习6:创建新列表[1,2,3,4,2,5,6,2],合并入names列表

names = ['old_driver', 'rain', 'jack', 'shanshan', 'peiqi', 'black_girl']
nums = [1,2,3,4,2,5,6,2]
names.extend(nums)
print(names)

练习7:取出names列表中索引4-7的元素

names = ['old_driver', 'rain', 'jack', 'shanshan', 'peiqi', 'black_girl']
number = names.index("black_girl")
names.insert(-1,"alex")
nums = [1,2,3,4,2,5,6,2]
names.extend(nums)
print(names)
print(names[4:7]) #列表切片,顾头不顾尾

print(names[2:10:2]) #列表切片,步长为2
 

练习8:取出names列表中最后3个元素

names = ['old_driver', 'rain', 'jack', 'shanshan', 'peiqi', 'alex', 'black_girl', 1, 2, 3, 4, 2, 5, 6, 2]
print(names[-3:])

练习10:循环打印names列表,打印每个元素的索引值和元素

count = 0
for i in names:
    print(count,i)
    count += 1
原文地址:https://www.cnblogs.com/wudtime/p/8542984.html