一、List
1.什么是列表
- 列表是容器型数据类型:将[]作为容器标志,里面多个数据用逗号隔开:[元素1,元素2元素3,····]
- 列表是可变的(可变指的是元素的个数可变;元素的值可变;元素的顺序可变)
- 列表是有序的(每个元素都有一个表示元素位置信息的序号)
- 元素(容器中的每个独立的数据就是元素),任何类型的数据都可以作为列表的元素
例如:
list = [1,10,'ab',True]
2.查 - 获取元素
-
2.1 查单个 - 获取列表中某个元素
1、语法:
列表[下标] - 获取列表值中指定下标对应的元素
说明:
列表 - 任何结果是列表的表达式,例如:具体的一个列表值、保存列表的变量
[ ] - 固定写法
下标 - 又叫索引。他是元素在列表中的位置信息
取值方式1:从0开始依次增加,其中0表示第一个元素,1表示第二个元素
取值方式2:从-1开始依次递减,其中-1表示倒数第一个元素,-2表示倒数 第二个元素。。。。
例如:
names = ['林俊杰', '周杰伦', '王力宏', '陈奕迅' ,'薛之谦', '邓紫棋'] print (name[6]) # 报错:list index out of range
-
2.2 切片(查部分) - 同时获取列表中的多个元素
1、原理:通过提供下标的范围来获取范围内下标对应的元素
2、语法:
列表[开始下标:结束下标:步长] - 从开始下标开始,每次下标值增加步长,取到结束下标前
注意:
1)结束下标对应的元素一定取不到,开始下标对应的元素可以取到
2)如果步长为正,表示从前往后取,这个时候开始下标对应的位置必须在结束下标对应的位置之前,否则为空
3)如果步长为负,表示从后往前取,这个时候开始下标对应的位置必须在结束下标对应的位置之后,否则为空
例如:
names = ['林俊杰', '周杰伦', '王力宏', '陈奕迅' ,'薛之谦', '邓紫棋'] print(names[1:4:1]) # ['周杰伦', '王力宏', '陈奕迅'] print(names[2:-1:1]) #['王力宏', '陈奕迅', '薛之谦']
3、省略写法
1)省略步长 - 相当于步长是1
列表[开始下标:结束下标]
2)省略开始下标
列表[:结束下标:步长] - 步长为正,从第一个元素往后取;步长为负,从倒数第一个元 素开始往后取
列表[:结束下标] - 从第一个元素开始往后取
3)省略结束下标
列表[开始下标::步长] - 步长为正,从开始下标开始往后取;步长为负,从开始下标开始往前取
列表[开始下标:] - 从开始下标开始往后取
4)一起省
列表[::步长]
列表[:]
-
2.3 遍历
1、方法一:直接获取元素
for 变量 in 列表:
循环体
2、方法二:先混去每个元素对应的下标,然后在通过下标获取元素
for 变量 in range(列表长度):
列表[变量]
len(变量) - 获取列表中元素个数
二、listOperation
1.增 - 往列表中添加元素
-
1.1列表.append(元素) - 在列表的最后添加指定的元素
例如:
subjiects = ['ios', '安卓'] subjiects.append('h5') print (subjects) # ['ios', '安卓', 'h5']
-
1.2列表.insert(下标,要插入的元素) - 在列表的指定下标对应的元素前面插入指定的元素
例如:
TVS = ['甄嬛传', '还珠格格', '情深深雨蒙蒙', '琅琊榜'] TVS.insert(1,'庆余年') print(TVS) # ['甄嬛传','庆余年' ,'还珠格格', '情深深雨蒙蒙', '琅琊榜']
2.删
-
2.1 del 列表[下标] - 删除列表中指定下标对应的元素
-
2.2 列表.remove(元素) - 删除标中指定的元素
如果元素不存在报错;如果被删除的元素在列表中有多个,只删除最前面的那一个
TVS = ['西游记', '甄嬛传', '庆余年', '还珠格格','庆余年', '情深深雨蒙蒙', '琅琊榜'] TVS.remove('庆余年')
-
2.3
1)列表.pop() - 取列表最后一个元素
2)列表.pop(下标) - 取出列表下标对应的元素
取出,可以另存
3.改 - 修改某个元素的值
- 3.1列表[下标] = 新元素 - 修改列表中指定下标对应元素为新的元素
例如:
TVS = ['西游记', '甄嬛传', '庆余年', '还珠格格', '情深深雨蒙蒙', '琅琊榜'] TVS[0] = '生活大爆炸' print(TVS) #['生活大爆炸', '甄嬛传', '庆余年', '还珠格格', '情深深雨蒙蒙', '琅琊榜']
三、otherOperation
1.列表数学运算:+、*
-
1.1列表1 + 列表2 - 将两个列表合并成一个新的列表
例如:
list1 = [10, 20, 30] list2 = [100, 200] print (list1 + list2) #[10, 20, 30, 100, 200] print (list1) # [10, 20, 30]
-
1.2 列表 *N或者N *列表 - 将列表中的元素重复N此产生一个新的列表
例如:
print(list2 * 3) # list2+list2+list2
2.比较运算:==、!=、>、<、>=、<=
-
2.1比较是否相等 - 必须完全相等
-
2.2 比较大小 - 比较第一对不相等的元素的大小(两个列表相同位置上的元素是一对)
例如:
print([100, 200] > [10, 20, 30, 40]) # True
3. in 、 not
- 3.1 元素 in 列表 - 判断指定的列表中是否存在指定元素
- 3.2 元素 not in 列表 - 判断指定的列表中是否不存在指定的元素
4.相关函数:max、min、sorted、sum、list、len
-
4.1 max/min(列表) - 获取列表中最大或者最小的元素(这个列表中元素一只,并且元素本身支持比较)
-
4.2
- sorted(列表) - 将列表中的元素从小到大排序,排序之后产生一个新的列表
2)sorted(列表,reverse= True) - 将列表中的元素从大到小排序,排序之后产生一个新的列表
例如:
nums = [89, 923, 78, 100, 92, 8] new_nums = sorted(nums) print(new_nums) # [8, 78, 89, 92, 100, 923] print(nums) # [89, 923, 78, 100, 92, 8]
-
4.3 sum(列表) - 求列表中所有元素的和
-
4.4 list(列表) - 将序列转换成列表(获取序列中所有的元素创建一个新的列表)
例如:
print(list('abc')) # ['a', 'b', 'c'] print(range(5)) # range(0, 5)
1.已知一个数字列表,求列表中心元素。
nums = [10, 20, 30, 40, 50]
mid = int(len(nums)/2)
if len(nums)%2 == 0:
print(nums[mid-1],nums[mid])
else:
print(nums[mid])
2.已知一个数字列表,求所有元素和。
nums = [10, 20, 30, 40, 50,60]
print(sum(nums))
3.已知一个数字列表,输出所有奇数下标元素。
nums = [10, 20, 30, 40, 50,60]
for i in range(1,len(nums),2):
print(nums[i])
4.已知一个数字列表,输出所有元素中,值为奇数的元素。
nums = [13, 21, 30, 42, 57,60]
for i in nums:
if i % 2 != 0:
print(i)
5.已知一个数字列表,将所有元素乘二。
例如:nums = [1, 2, 3, 4] —> nums = [2, 4, 6, 8]
nums = [13, 21, 30, 42, 57,60]
j = 0
for i in nums:
nums[j] = i*2
j += 1
print(nums)
6.有一个长度是10的列表,数组内有10个人名,要求去掉重复的
例如:names = [‘张三’, ‘李四’, ‘大黄’, ‘大黄’, ‘张三’, ‘张三’, ‘张三’] -> names = [‘张三’, ‘李四’, ‘大黄’]
names = ['张三', '李四', '大黄', '大黄', '张三', '张三', '张三']
names_1 = []
for i in names:
if i not in names_1:
names_1.append(i)
print(names_1)
7.用一个列表来保存一个节目的所有分数,求平均分数(去掉一个最高分,去掉一个最低分,求最后得分)
scores = [95,98,81,76,93,100]
min = min(scores)
max = max(scores)
scores.remove(min)
scores.remove(max)
count = 0
for i in scores:
count += i
print(count/len(scores))
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
max = 0
nums = [19, 89, 90, 600, 1]
for i in nums:
if max < i:
max = i
print(max)
10.*获取列表中出现次数最多的元素
例如:nums = [1, 2, 3,1,4,2,1,3,7,3,3] —> 打印:3
方法一:
nums = [1, 2, 3,1,4,2,1,3,7,3,3]
nums_1 = []
nums_2 = []
count = 0
for i in nums:
if i not in nums_1:
nums_1.append(i)
print(nums_1)
l = len(nums_1)
for j in range(l):
for k in nums:
if nums_1[j] == k:
count += 1
nums_2.append(count)
count =0
print(nums_2)
big = max(nums_2)
for m in range(len(nums_2)):
if big == nums_2[m] :
print(nums_1[m])
方法二:
nums = [1, 2, 3,1,4,2,1,3,7,3,3]
max_count = 0
index1 = 0
for i in nums:
for j in range(len(nums)):
count = 0
if nums[j] == i:
count += 1
if count_max < count:
count_max = count
index = i
print(nums[index])