1.已知一个列表,求列表中心元素。
讲解:先判断列表的个数是奇数还是偶数
list1 = [1,2,3,4,5,6]
length = len(list1)
if length & 1:
print(list1[length//2])
else:
print(list1[length>>1])
print(list1[length >> 1]-1)
list1 = [1,2,3,4,5,'ab']
len1 = len(list1)
len2 = len1 // 2
if len1 & 1 != 0 :
print(list1[len2])
else:
print(list1[len2-1],list1[len2])
2.已知一个列表,求所有元素和。
讲解: 用sum
list1 = [15,20,30,4,5,5,10]
print(sum(list1))
3.已知一个列表,输出所有奇数下标元素。
讲解:
list1 = [15,20,'acd',4,'a',5,'b',8]
for i in range(1,len(list1),2):
print(list1[i])
4.已知一个列表,输出所有元素中,值为奇数的。
**讲解:
list1 = [1,2,3,4,5,6]
for item in list1:
if item & 1:
print(item)
list1 = [15,20,9,4,31,5,7,8]
for i in range(0,len(list1)):
if (int(list1[i])) & 1 == 1 :
print(list1[i],end=' ')
5.已知一个列表,将所有元素乘二。
讲解:修改原列表的值,不产生新的列表
list1 = [1,2,3,4,5,6]
for index in range(len(list1)):
list1[index] *= 2
print(list1)
list2 = []
list1 = [15,20,9,4,31,5,7,8]
for i in range(0,len(list1)):
list1[i] *= 2
list2.append(list1[i])
print(list2)
6.有一个长度是10的列表,数组内有10个人名,要求去掉重复的
例如:names = ['张三', '李四', '大黄', '张三'] -> names = ['张三', '李四', '大黄']
**讲解:方法1:用set最简单,不产生新的列表:
方法:2:
list1 = ['张三','李四','王二','张三','李四','王二','张三','李四','王二','麻子']
names = []
for item in list1:
if item not in names:
names.append(item)
print(names)
方法3:
list1 = ['张三','李四','王二','张三','李四','王二','张三','李四','王二','麻子']
for item in list1[:]:
count = list1.count(item)
if count > 1:
list1.remove(item)
print(list1)
names = ['张三', '李四', '大黄', '张三','张三', '李四', '大黄','张三', '李四', '大黄']
names1 = []
count = 0
for i in range(0,len(names)):
for j in range(i+1,len(names)):
if names[i] == names[j]:
names.remove(names[j])
count += 1
j -= 1
break
i -= count
if (i or j) == len(names)-1:
i = 0
j = i + 1
for i in range(0, len(names)):
for j in range(i + 1, len(names)):
if names[i] == names[j]:
names.remove(names[j])
count += 1
j -= 1
break
i -= count
print(names)
结论:
7.已经一个数字列表(数字大小在0~65535之间), 将列表转换成数字对应的字符列表
例如: list1 = [97, 98, 99] -> list1 = ['a', 'b', 'c']
**讲解:不用产生新的列表
list1 = [65,66,67,96,97,98]
for i in range(0,len(list1)):
list1[i] = chr(list1[i])
print(list1)
结论:
8.用一个列表来保存一个节目的所有分数,求平均分数(去掉一个最高分,去掉一个最低分,求最后得分)
**讲解:用remove去掉最高分和最低分
结论:
score_list = []
score = int(input('请输入一个分数:'))
score_list.append(score)
sum1 = 0
for _ in range(0,5):
score = int(input('请输入一个分数:'))
score_list.append(score)
score_list.remove(max(score_list))
score_list.remove(min(score_list))
for i in range(0,4):
sum1 += score_list[i]
aver = sum1 / 4
print(aver)
D:\python工程\个人\day6列表\列表\venv\Scripts\python.exe D:/python工程/个人/day6列表/列表/05-作业.py
请输入一个分数:10
请输入一个分数:20
请输入一个分数:30
请输入一个分数:40
请输入一个分数:50
请输入一个分数:60
35.0
Process finished with exit code 0
9.有另个列表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,4):
for j in range(0,4):
if A[i] == B[j]:
C.append(A[i])
print(C)
结论:
网友评论