列表

列表

定义:以[]作为标志,里面存储数据

特点:列表里面元素的个数、值、顺序是可变的。列表是有序的。可以存储任何类型的数据

获取列表元素

  1. 获取单个元素

语法:列表[下标] —获取列表中指定下标对应的元素

下标从0开始

下标-1就是列表的最后一个元素

注意:获取单个数据的时候下标不能越界

scores=[90,78,58,76,78]
print(scores[1])
print(scores[-4])
  1. 遍历

遍历就是将列表里的元素一个个的取出来

遍历的方法:

(1)for 变量 in列表:
循环体 (变量取到的是列表中的元素)

(2)for 下标,元素 in enumerate(列表):
循环体

  1. 获取部分元素

语法:列表[开始下标:结束下标:步长]

​ --从开始下标取,每次下标整加步长去取下一个值,到结束下标前为止。

​ --如果步长为正:表示开始下标到结束下标是从从前往后取,开始下标对应位置要在结束下标的位置的前面才能取到值;
​ --如果步长为负:表示开始下标到结束下标是从从后往前取,开始下标对应位置要在结束下标的位置的后面才能取到值;

(1)省略步长:列表[开始下标:结束下标] --省略步长,想到于步长为1

movies = ['僵尸世界大战', '电锯惊魂', '致命弯道', '死神来了', '生化危机', '林中小屋']
print(movies[1:-1])    # ['电锯惊魂', '致命弯道', '死神来了', '生化危机']
print(movies[5:2])     # []

(2)省略开始下标:列表[:结束下标:步长]/列表[:结束下标]
如果步长为正,表示从第一个元素开始往后取
如果步长为负,表示从最后一个元素开始往前取

print(movies[:5:2])     # ['僵尸世界大战', '致命弯道', '生化危机']
print(movies[:-2])      # ['僵尸世界大战', '电锯惊魂', '致命弯道', '死神来了']
print(movies[:-3:-1])   # ['林中小屋', '生化危机']
print(movies[:-1:-1])   # []

(3)省略结束下标:列表[开始下标::步长]/列表[开始下标:]
如果步长为正,从前往后取到最后一个元素为止
如果步长为负,从后往前取到第一个元素为止

tv_list = ['甄嬛传', '名侦探柯南', '名侦探狄仁杰', '西游记', '三国演义', '生活大爆炸', '尼基塔']
print(tv_list[2:])    # ['名侦探狄仁杰', '西游记', '三国演义', '生活大爆炸', '尼基塔']
print(tv_list[-3::-1])  # ['三国演义', '西游记', '名侦探狄仁杰', '名侦探柯南', '甄嬛传']

(4)开始步长和结束下标都省 列表[::步长]/[:]

​ 如果步长为正,从前往后从第一个元素取到最后一个元素
​ 如果步长为负,从后往前从最后一个元素取到第一个元素

print(tv_list[:])   # ['甄嬛传', '名侦探柯南', '名侦探狄仁杰', '西游记', '三国演义', '生活大爆炸', '尼基塔']
print(tv_list[::-1])    # ['尼基塔', '生活大爆炸', '三国演义', '西游记', '名侦探狄仁杰', '名侦探柯南', '甄嬛传']
print(tv_list[::-2])    # ['尼基塔', '三国演义', '名侦探狄仁杰', '甄嬛传']

列表增删改

(1)append

格式: 列表.append()

在列表的最后添加元素,

在列表的原基础上修改

name=['路飞','佐罗','罗兵',]
name.append ('娜美')
print(name)

(2) insert

格式: 列表.insert(下标,元素)

在指定的位置添加元素

name=['路飞','佐罗','罗兵',]
name.insert(2,'桃之助')
print(name)

(3)extend

格式: 列表.extend(系列)

将序列的所有元素添加到列表的最后

sports=['篮球','足球','乒乓球','羽毛球']
sports.extend(['排球'])
print(sports)   #['篮球', '足球', '乒乓球', '羽毛球', '排球']

sports.extend('hello')
print(sports)   #['篮球', '足球', '乒乓球', '羽毛球', '排球', 'h', 'e', 'l', 'l', 'o']
练习 给一个分数列表[90,56,78,89,45,60,32,100],在这个列表中不及格的后面加0
scores=[90,56,78,89,45,60,32,100]
new_scores=scores[:]
i=1
for index,item in enumerate(new_scores):
    if item<60:
        print('下标是几的分数不及格:', index)
        scores.insert(index+i,0)
        i+=1
print(scores)
方法二:
scores=[90,56,78,89,45,60,32,100]
new_scores = scores [ : ]
index = 0# scores中元素的下标
for item in new_scores:
    print(index,item)
    if item < 60:
        scores.insert(index+1, 0)
        index += 1
    index += 1
    print(scores)

(1)del

格式:del 列表[下标] —删除列表中指定下标对应的元素

注意:下标不要越界

names=['后裔','伽罗','虞姬','甄姬','百里']
del names[1]
print(names)  #['后裔', '虞姬', '甄姬', '百里'] 

(2)remove

格式:列表.remove(元素) —删除列表中指定元素

如果元素不存在,会报错,如果相同的元素存在多个,删除第一个碰到的

names=['后裔','伽罗','虞姬','甄姬','百里','鲁班七号']
names.remove ('后裔')
print(names)  #['伽罗', '虞姬', '甄姬', '百里', '鲁班七号']

(3)pop

格式: 列表.pop() ----取出列表中的最后一个元素

​ 列表.pop(下标) ------取出列表中指定下标对应的元素

names=['后裔','伽罗','虞姬','甄姬','百里','鲁班七号']
print (names.pop ())   #鲁班七号
print(names)   #['后裔', '伽罗', '虞姬', '甄姬', '百里']

(4) clear

格式:列表.clear() ----删除列表中所有的元素

names=['后裔','伽罗','虞姬','甄姬','百里','鲁班七号']
names.clear()
print(names)

改 -修改列表元素的值
格式:列表[下标]=新元素 —将列表指定下标对应的元素修改成新的元素

movies=['恐怖游轮','致命ID','忍者神龟','赌神','雪国列车']
movies[-2]='盗梦空间'
print(movies)

列表的相关操作

1 加法运算和乘法运算

加法和乘法运算不会修改原列表

列表1 + 列表2   ---将列表1和列表2合并产生一个新列表
list1=[10,2,34]+[1,2,4]
print(list1)
列表 * N 或 N * 列表  ---列表重复N次,产生一个新的列表,N为正整数才有意义
list1=[10,2,34]  * 2
print(list1)   # [10, 2, 34, 10, 2, 34]

2 比较运算

俩个列表比较大小,比较的是第一对不相等的元素的大小(从前往后下标相同的元素为一对)

print([10,20,30]==[20,10,30])  #False
print([10,20,30]==[10,20,30])  #True
2)> < >= <=
print([100,200,300,400]>[200,100])  #False

3 in 和not in

元素 in 列表 --判断指定元素是否在指定列表中
元素 not in列表 --判断指定元素是否不在指定列表中

names=['李白','杜甫','白居易','辛弃疾']
print('陶渊明' in names)   #False
print ('杜甫' in names)   #True

4 系统函数

len(序列)  --获取序列中元素的个数
pythons =['李四','张三','小花','bob','TOM']
print(len(pythons))

max(序列)/min(序列)  --求序列中元素的最大值/ 最小值
scores=[9,98,7,67]
print(max(scores))
print(min(scores))

sorend(序列) --对序列中的元素从小到大排序,产生一个新的列表(不会修改原列表)
scores=[9,98,7,67]
print(sorted(scores))

sorend(序列,reverse=True)  --对序列中的元素从大到小排序,产生一个新的列表(不会修改原列表)
scores=[9,98,7,67]
print(sorted(scores,reverse=True))

sum(序列)  --求序列中元素(必须是数字)的和
scores=[9,98,7,67]
print(sum(scores))


list(序列) --将制定的序列转换成列表
1)所有的序列都可以转换成列表 2)将序列中的元素变成列表的元素
print(list('sdf'))  #['s', 'd', 'f']
print(list(range(4)))  #[0, 1, 2, 3]

列表的相关方法

1.列表.copy() —复制原列表。产生一个新列表(相当于列表[:];浅拷贝)
2.列表.count(元素) —统计列表中指定元素的个数

foods=['大闸蟹','小龙虾','花甲','包子','油条','小龙虾']
print (foods.count ('小龙虾'))

3.列表.index(元素) --获取指定元素的下标

foods=['大闸蟹','小龙虾','花甲','包子','油条','小龙虾']
print(foods.index('花甲'))

如果元素有多个,返回第一个元素的下标;如果不存在,会报错

4.列表.reverse() --将指定的列表逆序

foods.reverse()
print(foods)

5.列表.sort() —将列表中的元素从小到大排序(不会产生新的列表)
列表.sort(reverse=True) ----将列表中的元素从大到小排序(不会产生新的列表)

ages=[1,2,5,3,66,77,444]
ages.sort()
print(ages)
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页