1.已知一个数字列表,求列表中心元素。
nums = [89, 61, 79, 60, 76, 99, 66]
if len(nums) % 2 == 0:
print(nums[len(nums) // 2 - 1],nums[len(nums) // 2])
else:
print(nums[len(nums) // 2])
"""
执行过程
1.已知列表nums = [89, 60, 79, 60, 76, 99, 66]
2.如果列表长度len(nums) % 2 ==0 -> len(nums) 列表长度为7 -> 7 % 2 !=0 则不打印 列表nums[长度 // 2 -1] 进入else
3.打印列表nums[长度 // 2] -> nums[长度7 // 2] -> nums[3] -> print(nums[3]) -> 60
"""
2.已知一个数字列表,求所有元素和。
nums = [89, 61, 79, 60, 76, 99, 66]
sum = 0
for i in nums:
sum += i
print('所有元素的和:',sum)
"""
执行过程
1. 已知列表nums = [89, 61, 79, 60, 76, 99, 66]
2. 变量sum = 0
3. for循环i在列表nums 逐个取值
i -> 89 -> sum = 0 + 89 -> sum = 89
i -> 61 -> sum = 89 + 61 -> sum = 150
i -> 79 -> sum = 150 + 79 -> sum = 229
i -> 60 -> sum = 229 + 60 -> sum = 289
i -> 76 -> sum = 289 + 76 -> sum = 365
i -> 99 -> sum = 365 + 99 -> sum = 464
i -> 66 -> sum = 464 + 66 -> sum = 530
4.打印'所有元素的和:',sum -> 所有元素的和:530
"""
# 优化
# nums = [89, 61, 79, 60, 76, 99, 66]
# print(sum(nums))
3.已知一个数字列表,输出所有奇数下标元素。
# 方法一:
nums = [89, 61, 79, 60, 76, 99, 66]
for i in range(1, len(nums), 2):
print(nums[i])
"""
执行过程
1. nums = [89, 61, 79, 60, 76, 99, 66]
2. for 循环 i 在列表nums取值,开始值是1为奇数下标,len(nums)为列表长度,2为步长取奇数下标对应元素.
i -> 1 所对应的列表值 61 -> 打印 61
i -> 3 所对应的列表值 60 -> 打印 60
i -> 5 所对应的列表值 99 -> 打印 99
"""
# 方法二:
nums = [89, 61, 79, 60, 76, 99, 66]
print(nums[1::2])
"""
执行过程
1. nums = [89, 61, 79, 60, 76, 99, 66]
2. 打印 列表nums 开始下标为1 结束下标省略取尽 步长为2 的值
"""
4.已知一个数字列表,输出所有元素中,值为奇数的元素。
nums = [89, 61, 79, 60, 76, 99, 66]
for sum in nums:
if sum & 1 != 0:
print(sum)
"""
执行过程
1. nums = [89, 61, 79, 60, 76, 99, 66]
2. for 循环 sum 在列表nums中逐个取值
3. if sum & 1 != 0 -> 如果sum & 1不等于0 为奇数 -> 打印sum -> 再进行循环
sum = 89 -> 89 & 1 != 0 -> True -> 打印 89
sum = 61 -> 61 & 1 != 0 -> True -> 打印 61
sum = 79 -> 79 & 1 != 0 -> True -> 打印 79
sum = 60 -> 60 & 1 != 0 -> False -> 不打印
sum = 76 -> 76 & 1 != 0 -> False -> 不打印
sum = 99 -> 99 & 1 != 0 -> True -> 打印 99
sum = 66 -> 66 & 1 != 0 -> False -> 不打印
sum已取完列表nums的值 整个循环结束
"""
5.已知一个数字列表,将所有元素乘二。
例如:nums = [1, 2, 3, 4] —> nums = [2, 4, 6, 8]
nums = [1, 2, 3, 4]
for sum in range(len(nums)):
# nums[sum] = nums[sum] * 2
nums[sum] *= 2
print(nums)
"""
执行过程
1. nums = [1, 2, 3, 4]
2. for 循环 sum 在列表nums 中取值
3. 将nums列表 所有元素乘二
sum = 0 所对应的值是 1 -> 列表nums[0] * 2 -> 1 * 2 = 2 -> 将列表中[1, 2, 3, 4]所对应下标0的值 1 改为 2 -> [2, 2, 3, 4]
sum = 1 所对应的值是 2 -> 列表nums[1] * 2 -> 2 * 2 = 4 -> 将列表中[2, 2, 3, 4]所对应下标1的值 2 改为 4 -> [2, 4, 3, 4]
sum = 2 所对应的值是 3 -> 列表nums[2] * 2 -> 3 * 2 = 6 -> 将列表中[2, 4, 3, 4]所对应下标2的值 3 改为 6 -> [2, 4, 6, 4]
sum = 3 所对应的值是 4 -> 列表nums[3] * 2 -> 4 * 2 = 8 -> 将列表中[2, 4, 6, 4]所对应下标3的值 4 改为 8 -> [2, 4, 6, 8]
4. 打印列表nums -> [2, 4, 6, 8]
"""
6.有一个长度是10的列表,数组内有10个人名,要求去掉重复的
例如:names = [‘张三’, ‘李四’, ‘大黄’, ‘大黄’, ‘张三’, ‘张三’, ‘张三’] -> names = [‘张三’, ‘李四’, ‘大黄’]
# 方法一
names = ['张三', '李四', '大黄', '大黄', '张三', '张三', '张三']
new_names = []
for name in names:
if name not in new_names:
new_names.append(name)
print(new_names)
"""
执行过程
1. names = ['张三', '李四', '大黄', '大黄', '张三', '张三', '张三']
2. 创建一个新的空列表 new_names = []
3. for 循环 name 在 列表names 里逐个取值。
如果 name 不在new_names列表内.将在new_names列表里添加 name
name = 张三 -> 不在new_names列表内 -> 在new_names列表里添加 张三 -> new_names = ['张三']
name = 李四 -> 不在new_names列表内 -> 在new_names列表里添加 李四 -> new_names = ['张三','李四']
name = 大黄 -> 不在new_names列表内 -> 在new_names列表里添加 大黄 -> new_names = ['张三','李四','大黄']
name = 大黄 -> 在new_names列表内 -> 不在new_names列表里不添加 大黄 -> new_names = ['张三','李四','大黄']
name = 张三 -> 在new_names列表内 -> 不在new_names列表里不添加 张三 -> new_names = ['张三','李四','大黄']
name = 张三 -> 在new_names列表内 -> 不在new_names列表里不添加 张三 -> new_names = ['张三','李四','大黄']
name = 张三 -> 在new_names列表内 -> 不在new_names列表里不添加 张三 -> new_names = ['张三','李四','大黄']
打印 new_names -> ['张三','李四','大黄']
"""
# 方法二
names = ['张三', '李四', '大黄', '大黄', '张三', '张三', '张三']
for name in names[:]:
if names.count(name) > 1:
names.remove(name)
print(names)
"""
1. names = ['张三', '李四', '大黄', '大黄', '张三', '张三', '张三']
2. for 循环 name 在names列表里取出所有值
3. 如果 names列表中 name次数大于1 ; 将在列表names内删除name; 从前往后删
name = 张三 -> name张三 1 > 1 -> False -> names = ['张三', '李四', '大黄', '大黄', '张三', '张三', '张三']
name = 李四 -> name李四 1 > 1 -> False -> names = ['张三', '李四', '大黄', '大黄', '张三', '张三', '张三']
name = 大黄 -> name大黄 1 > 1 -> False -> names = ['张三', '李四', '大黄', '大黄', '张三', '张三', '张三']
name = 大黄 -> name大黄 2 > 1 -> True -> names = ['张三', '李四', '大黄', '张三', '张三', '张三']
name = 张三 -> name张三 2 > 1 -> True -> names = ['李四', '大黄', '张三', '张三', '张三']
name = 张三 -> name张三 3 > 1 -> True -> names = ['李四', '大黄', '张三', '张三']
name = 张三 -> name张三 4 > 1 -> True -> names = ['李四', '大黄', '张三']
打印 names ['李四', '大黄', '张三']
"""
7.用一个列表来保存一个节目的所有分数,求平均分数(去掉一个最高分,去掉一个最低分,求最后得分)
nums = [89, 61, 79, 60, 76, 99, 66]
nums.remove(max(nums))
nums.remove(min(nums))
print('最后得分:',sum(nums)/len(nums))
"""
1. nums = [89, 61, 79, 60, 76, 99, 66]
2. 列表nums中删除最大值 -> nums = [89, 61, 79, 60, 76, 66]
3. 列表nums中删除最小值 -> nums = [89, 61, 79, 76, 66]
4. 打印最后得分 nums总和 除以 nums长度 -> 74.2
"""
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 range(0, len(A)):
for j in range(0, len(B)):
if A[i] == B[j]:
C.append(B[j])
print(C)
"""
执行过程
1. A = [1, 'a', 4, 90]
2. B = ['a', 8, 'j', 1]
3. C = []
4. for 循环 i 在列表 A 取值
5. for 循环 j 在列表 B 取值
6. 如果列表A内i取的值等于列表B内j取的值.在列表C里添加列表B内j取的值
A[0] = 1 -> B[0] = 'a' -> A[i] == B[j] -> 1 == 'a' -> False
A[0] = 1 -> B[1] = 8 -> A[i] == B[j] -> 1 == 8 -> False
A[0] = 1 -> B[2] = 'j' -> A[i] == B[j] -> 1 == 'j' -> False
A[0] = 1 -> B[3] = 1 -> A[i] == B[j] -> 1 == 1 -> True -> 在列表C里添加 B[j] -> C[1]
A[1] = ‘a’ -> B[0] = 'a' -> A[i] == B[j] -> 'a' == 'a' -> True -> 在列表C里添加 B[j] -> C[1,'a']
A[1] = ‘a’ -> B[1] = 8 -> A[i] == B[j] -> 'a' == 8 -> False
依此循环到取尽 此处省略
7. 打印列表C -> B[j] -> C[1,'a']
"""
9.*有一个数字列表,获取这个列表中的最大值.(注意: 不能使用max函数)
例如: nums = [19, 89, 90, 600, 1] —> 600
nums = [19, 89, 90, 600, 1]
max_num = nums[0]
for num in nums:
if num > max_num:
max_num = num
print(max_num)
"""
1. nums = [19, 89, 90, 600, 1]
2. 创建一个新列表 max_num = nums[0]
3. for 循环 num 在列表nums内逐个取值
num = 19 -> num > max_num -> 19 > 19 -> False
num = 89 -> num > max_num -> 89 > 19 -> True -> max_num = 89
num = 90 -> num > max_num -> 90 > 89 -> True -> max_num = 90
num = 600 -> num > max_num -> 600 > 90 -> True -> max_num = 600
num = 1 -> num > max_num -> 1 > 600 -> False
打印 max_num -> 600
"""
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]
cou_i = 0
cou = 0
for i in range(0, len(nums) - 1):
count = 1
for j in range(i + 1, len(nums)):
if nums[i] == nums[j]:
count += 1
if cou < count:
cou = count
cou_i = i
print(nums[cou_i])
"""
1. nums = [1, 2, 3, 1, 4, 2, 1, 3, 7, 3, 3]
2. cou_i = 0 # i 在列表nums内取的下标
3. cou = 0 # i 在j循环的次数
4. for 循环 i 在列表nums内取的下标;变量count = 1
5. for 循环 j 在列表nums内取的下标 range(i+1,len(nums)) ;如果nums[i] == nums[j] ; 每循环一次count += 1
如果cou < count -> 将count 赋值到 cou ; 将i 赋值到 cou_i
i = 0 -> count = 1 -> j = 0+1 = 1 -> nums[0] == nums[1] -> 1 == 2 -> False
i = 0 -> count = 1 -> j = 1+1 = 2 -> nums[0] == nums[2] -> 1 == 3 -> False
i = 0 -> count = 1 -> j = 2+1 = 3 -> nums[0] == nums[3] -> 1 == 1 -> True -> count += 1
i = 0 -> count = 2 -> j = 3+1 = 4 -> nums[0] == nums[4] -> 1 == 4 -> False
i = 0 -> count = 2 -> j = 4+1 = 5 -> nums[0] == nums[5] -> 1 == 2 -> False
i = 0 -> count = 2 -> j = 5+1 = 6 -> nums[0] == nums[6] -> 1 == 1 -> True -> count += 1
i = 0 -> count = 3 -> j = 6+1 = 7 -> nums[0] == nums[7] -> 1 == 3 -> False
i = 0 -> count = 3 -> j = 7+1 = 8 -> nums[0] == nums[8] -> 1 == 7 -> False
i = 0 -> count = 3 -> j = 8+1 = 9 -> nums[0] == nums[9] -> 1 == 3 -> False
i = 0 -> count = 3 -> j = 9+1 = 10 -> nums[0] == nums[10] -> 1 == 3 -> False
如果 cou < count ; cou = count ; cou_i = i
cou = 0 ; count = 3 -> 0 < 3 -> cou = count -> cou = 3 -> cou_i = i -> cou_i = 0
i = 1 -> count = 1 -> j = 1+1 = 2 -> nums[1] == nums[2] -> 2 == 3 -> False
i = 1 -> count = 1 -> j = 2+1 = 3 -> nums[1] == nums[3] -> 2 == 1 -> False
i = 1 -> count = 1 -> j = 3+1 = 4 -> nums[1] == nums[4] -> 2 == 4 -> False
i = 1 -> count = 1 -> j = 4+1 = 5 -> nums[1] == nums[5] -> 2 == 2 -> True -> count += 1
i = 1 -> count = 2 -> j = 5+1 = 6 -> nums[1] == nums[6] -> 2 == 1 -> False
i = 1 -> count = 2 -> j = 6+1 = 7 -> nums[1] == nums[7] -> 2 == 3 -> False
i = 1 -> count = 2 -> j = 7+1 = 8 -> nums[1] == nums[8] -> 2 == 7 -> False
i = 1 -> count = 2 -> j = 8+1 = 9 -> nums[1] == nums[9] -> 2 == 3 -> False
i = 1 -> count = 2 -> j = 9+1 = 10 -> nums[1] == nums[10] -> 2 == 3 -> False
cou = 3 ; count = 2 -> 3 < 2 -> False
i = 2 -> count = 1 -> j = 2+1 = 3 -> nums[2] == nums[3] -> 3 == 1 -> False
i = 2 -> count = 1 -> j = 3+1 = 4 -> nums[2] == nums[4] -> 3 == 4 -> False
i = 2 -> count = 1 -> j = 4+1 = 5 -> nums[2] == nums[5] -> 3 == 2 -> False
i = 2 -> count = 1 -> j = 5+1 = 6 -> nums[2] == nums[6] -> 3 == 1 -> False
i = 2 -> count = 1 -> j = 6+1 = 7 -> nums[2] == nums[7] -> 3 == 3 -> True -> count += 1
i = 2 -> count = 2 -> j = 7+1 = 8 -> nums[2] == nums[8] -> 3 == 7 -> False
i = 2 -> count = 2 -> j = 8+1 = 9 -> nums[2] == nums[9] -> 3 == 3 -> True -> count += 1
i = 2 -> count = 3 -> j = 9+1 = 10 -> nums[2] == nums[10] -> 3 == 3 -> True -> count += 1 -> count = 4
cou = 3 ; count = 4 -> 3 < 4 -> cou = count -> cou = 4 -> cou_i = i -> cou_i = 2
依此类推
最后打印 nums[cou_i] -> 3
"""