1.已知一个数字列表,求列表中心元素。
num = [1, 2, 3, 4, 5, 6]
if len(num) % 2 == 0:
leng1 = len(num) // 2
print(num[leng1 - 1], num[leng1])
# 也可以通过切片取,不过取出来的是列表
# print(num[leng1-1:leng1+1])
else:
if len(num) % 2:
leng1 = len(num) // 2
print(num[leng1])
# 3 4
2.已知一个数字列表,求所有元素和。
sum1 = 0
num1 = [1, 2, 3, 4]
for i in num1:
sum1 += i
print(sum1) # 10
3.已知一个数字列表,输出所有奇数下标元素。
num3 = [5, 4, 6, 8, 9, 2, 3]
j = 0
for i in range(len(num3)):
if i % 2:
print(num3[i], end=' ')
print()
# 解法二
num3 = [5, 4, 6, 8, 9, 2, 3]
j = 0
for i in range(1,len(num3),2):
print(num3[i], end=' ')
print()
# 4 8 2
4.已知一个数字列表,将所有元素乘二。
例如:nums = [1, 2, 3, 4] —> nums = [2, 4, 6, 8]
num4 = [1, 2, 3, 4]
nums = []
for i in num4:
nums.append(i * 2)
print(nums) # [2, 4, 6, 8]
# 解法二 间接遍历
num4 = [1, 2, 3, 4]
for i in range(len(num4)):
num4[i]*=2
print(num4)
5.用一个列表来保存一个节目的所有分数,求平均分数(去掉一个最高分,去掉一个最低分,求最后得分)
list1 = [10,99,20,45,78,98,95]
for i in range(len(list1)):
for j in range(len(list1) - 1 - i):
if list1[j] > list1[j + 1]:
list1[j], list1[j + 1] = list1[j + 1], list1[j]
print(list1) # [10, 20, 45, 78, 95, 98, 99]
del list1[0]
del list1[len(list1) - 1]
print(list1) # [20, 45, 78, 95, 98]
sum5 = 0
for i in list1:
sum5 += i
print(sum5 / len(list1)) # 67.2
# 解法二
list1 = [10, 99, 20, 45, 78, 98, 95]
max_=list1[0]
min_=list1[0]
for i in list1:
if i>max_:
max_=i
if i<min_:
min_=i
print(max_,min_)
list1.remove(max_)
list1.remove(min_)
print('list1:',list1)
sum5=0
for i in list1:
sum5+=i
print(sum5/len(list1))
6.有两个列表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:
for j in B:
if i == j:
C.append(i)
else:
continue
print(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) # [1, 'a']
7.有一个数字列表,获取这个列表中的最大值.(注意: 不能使用max函数)
例如: nums = [19, 89, 90, 600, 1] —> 600
num7 = [19, 89, 90, 600, 1]
# 冒泡排序---找出最大值
for i in range(len(num7)):
for j in range(len(num7) - 1 - i):
if num7[j] < num7[j + 1]:
num7[j], num7[j + 1] = num7[j + 1], num7[j]
print(num7[0]) # 600
# 解法二:
num7 = [19, 89, 90, 600, 1]
max_7=num7[0]
for i in num7:
if i>max_7:
max_7=i
print(max_7) # 600
8.生成一个存放1-100中个位数为3的数据列表
num8 = []
j = 0
for i in range(1, 101):
if i % 10 == 3:
num8.append(i)
j += 1
print(num8) # [3, 13, 23, 33, 43, 53, 63, 73, 83, 93]
# 解法二
num9=[]
for i in range(3,101,10):
num9.append(i)
print(num9) # [3, 13, 23, 33, 43, 53, 63, 73, 83, 93]