2021-03-08

列表

含义:

列表是容器型数据类型;将[]作为容器标志,里面多个数据用逗号隔开:[元素1, 元素2, 元素3,…]
列表是可变的(可变指的是元素的个数可变;元素的值可变量;元素的顺序可变)、列表是有序的(每个元素都有一个表示元素在列表中位置信息的序号)
元素:(容器中每个独立的数据就是元素):没有要求(任何类型的数据都可以作为列表的元素,可重复)

一:查 - 获取元素

2.1 查单个 - 获取列表中某一个元素
语法:
列表 [下标]又叫索引 - 获取列表中指定下标对应的元素(记忆死)

说明:
列表 - 任何结果是列表的表达式,列入:具体的一个列表值、保存列表的变量(使用更多)
[] - 固定写法
下标 - 又叫索引。它是元素在列表中的位置信息。
取值方法1:从0开始依次增加, 其中0表示第一个元素,1表示第二个元素(取元素取到0-(n-1))
取值方法2:从-1开始一次减少,其中-1表示倒数第一个元素,-2表示倒数第二个元素…
name = [1, 2, 3, 4, 5]
print(names[2]) # 数字3
print(names[-2] ) # 数字4
print(names[6] ) # 报错,超过范围
print(names[-6] ) # 报错,超过范围

print([12, 22][0]) #12 可以不用变量直接写(用的少)

2.2 切片(查部分) - 同时获取列表中多个元素
原理:通过提供下标的范围来获取范围内下表对应的元素

语法:
列表[1:4:1] #[开始下标:结束下标:步长] (左闭右开)
range[开始下标:结束下标:步长] - 从开始下标开始,每次下标值增加步长,取到结束下标前为止。

注意:
1)结束下标对应的元素一定取不到,开始下标对应的元素可以取到
2)如果步长为正,表示从前往后取或者从左往右取,这个时候开始下标对应的位置必须在结束下标前,否则结果是空列表[]
3)如果步长是负,表示从后往前取,这个时候开始下标对应的位置必须在结束下标对应的位置后,否则结果是[]

names = [‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’]
print(names[1:4:1]) # [a, b, c , d]
print(names[1👎1]) # [b, c, d, e]
print(names[0:5:2]) #[a, c, e]
print(names[1:5:-1]) #[] 倒着取不到东西,
print(names[5:0:2]) #[] 取不到

1)省略步长 - 相当于步长是1
列表[开始下标:结束下标]

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

3)省略结束下标:
列表[开始下标::步长] - 步长为正,从开始下标开始往后取到最后一个元素(往后取到取不到位置);步长为负,从开始下标取到第一个元素为止(从后往前_)
列表[开始下标::]

4)一起省
列表[::步长] - 范围是取整个列表 步长为负倒着取,步长为正,从左往右qu
列表[:] - 取下来和原列表一样

2.3 遍历(每个都取到,取全部的一遍)

直接获取元素
方法一:
for 变量 in 列表:
循环体

变量取到的就是列表中的每一个元素

方法二:先获取每个元素对应的下标,然后再通过下标获取元素.
for 变量 in range(列表长度):
列表[变量]

len(列表) - 获取列表中元素的个数 #for x in range(len(games))

games = [‘王者荣耀’, ‘和平精英’, ‘狼人杀’, ‘植物大战僵尸’, ‘开心消消乐’, ]
for x in games:
print(x)

二、操作列表

1. - 往列表中添加元素
1.1 列表.append(元素) - 在列表的最后添加指定的元素
subjects = [‘ios’, ‘安卓’]
subjects.append(‘h5’)
print(subjects) #[‘ios’, ‘安卓’, ‘h5’]

subjects.append([10, 20])
print(subjects) #[‘ios’, ‘安卓’, ‘h5’, [10, 20]]

1.2 列表.insert(下标,元素) - 在列表的指定下标对应的元素前插入指定元素
tvs = [‘甄嬛传’, ‘还珠格格’, ‘情深深雨蒙蒙’, ‘琅琊榜’]
tvs.insert(1, ‘庆余年’)
print(tvs)
tvs.insert(0, ‘西游记’)
print(tvs)

2. - 删除列表中的元素
2.1 del 列表[下标] - 删除列表中指定下标对应的元素
tvs = [‘甄嬛传’, ‘还珠格格’, ‘情深深雨蒙蒙’, ‘琅琊榜’]
del tvs[-2]
print(tvs) #[‘甄嬛传’, ‘还珠格格’, ‘琅琊榜’]

2.2 列表.remove(元素) - 删除列表中指定的元素
如果元素不存在会报错
如果被删除的元素在列表中有多个,只删最靠前的元素

2.3列表.pop() - 取出列表最后一个元素,并且返回
列表.pop(下标) - 取出列表中指定下标对应的元素

tvs = [‘甄嬛传’, ‘还珠格格’, ‘情深深雨蒙蒙’, ‘琅琊榜’]
result=tvs.pop() #要用变量保存数据,不然还是不能保存
print(tvs)
print(result)

3.改 - 修改某个元素的值
列表[下标] = 新元素 - 修改列表中指定下标对应的元素为新元素
tvs = [‘甄嬛传’, ‘还珠格格’, ‘情深深雨蒙蒙’, ‘琅琊榜’]
tvs[0] = ‘生活大爆炸’
print(tvs)

练习:
将分数列表中所有低于60分的分数修改成’不及格’
scores = [78, 90, 20, 34, 78, 99, 34, 55]
for index in range(len(scores)):
if scores[index] < 60:
scores[index] =‘不及格’
print(scores)

三、列表中的数学运算

*1. 列表数学运算(只支持+ , )
1.1 列表 + 列表2 - 将两个列表合并产生一个新的列表
list1 = [10, 20, 30]
list2 = [100, 200]
print(list1+list2) #[10 ,20, 30, 100, 200]

1.2 列表n/n列表 - 将列表中元素重复N次产生一个新的列表
print(list2 * 2) # [100, 200, 100, 200]

2.比较运算:支持所有的运算符
2.1 比较是否相等
print([10, 20, 30] == [10, 20, 30]) #True

print([10, 20, 30] == [30, 20, 10]) #False

2.2比较大小
print([100, 200] > [10, 20, 30 , 40]) #True,比较第一段(两个相同位置的元素)不相等的元素的大小

3. in 和 not in

元素 in 列表 - 判断指定的列表中是否存在指定元素
元素 not in 列表 - 判断指定的列表中是否不存在指定元素
print(100 in [10, 20, 30]) #False
print(100 not in [10, 20, 30]) # True

4.相关函数:max,min,sorted, sum, lise,len
4.1 max(列表) - 获取列表中最大的元素(这个列表中的元素类型是一致,并且元素本身支持比较运算)
min(列表) - 获取列表中最小的元素(这个列表中的元素类型是一致,并且元素本身支持比较运算)

4.2 sorted(列表) - 将列表中的元素从小到大排序,排序后产生一个新的列表
sorted(列表,reverse=true) - 将列表中的元素从大到小排序.
new_nums = sorted(nums)
print(new_nums) #从小到大排序

new_nums = sorted(nums, reverse=True)
print(new_nums) #从大到大排序

4.3 sun(列表) - 求列表中所有元素的和(列表必须是数字列表)
nums = [89, 2323, 33, 2, 134]
print(sum(nums))

4.4 lise(序列) - 将序列转换成列表(获取序列中所有元素中创建一个新的列表)
注意:所有的序列都可以转换成列表
print(list(‘abc’))
print(list(range(1, 4))) #[1, 2, 3]

1.已知一个数字列表,求列表中心元素。

nums = [12, 34, 56, 43, 34, 45, 90]
max(nums)
print(nums[3])

2.已知一个数字列表,求所有元素和。

nums = [12, 34,43,  56, 34, 45, 90]
print(sum(nums))

3.已知一个数字列表,输出所有奇数下标元素。

nums = [12, 34, 56, 43, 34, 45, 90]
for x in range(len(nums)):
    if x % 2 != 0:
        print(nums[x])
        



4.已知一个数字列表,输出所有元素中,值为奇数的元素。

nums = [12, 34, 43,  56, 34, 45, 90]
for x in nums:
    if x % 2 != 0:
        print(x)



5.已知一个数字列表,将所有元素乘二。

例如:nums = [1, 2, 3, 4] —> nums = [2, 4, 6, 8]

nums = [1, 2, 3, 4, 5, 6, 7, ]
for i in range(len(nums)):
    nums[i] *= 2
print(nums)

6.有一个长度是10的列表,数组内有10个人名,要求去掉重复的

例如:names = [‘张三’, ‘李四’, ‘大黄’, ‘大黄’, ‘张三’, ‘张三’, ‘张三’] -> names = [‘张三’, ‘李四’, ‘大黄’]


7.用一个列表来保存一个节目的所有分数,求平均分数(去掉一个最高分,去掉一个最低分,求最后得分)

score = [7.5, 8, 9, 7.9, 7, 6, 8.5]
sorted(score)
score.pop(-1)
score.pop(0)
averge = (sum(score)/len(score))
print('平均分',averge)

8.有两个列表A和B,使用列表C来获取两个列表中公共的元素

例如: A = [1, ‘a’, 4, 90] B = [‘a’, 8, ‘j’, 1] --> C = [1, ‘a’]

A = [1, 'a', 4, 90]
B = ['a', 8, 'j', 1]
C = []
for i in A:
    if i in B:
        C.append(i)
print(C)

9.*有一个数字列表,获取这个列表中的最大值.(注意: 不能使用max函数)

例如: nums = [19, 89, 90, 600, 1] —> 600

nums = [6,3,5,4,7,8,9]
sorted(nums)
print(nums[-1])

10.*获取列表中出现次数最多的元素

例如:nums = [1, 2, 3,1,4,2,1,3,7,3,3] —> 打印:3


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值