1. 已知一个数字列表,求列表中心元素。
list1 = [1, 2, 3, 4, 5, 6]
if len(list1) % 2 == 0:
print(list1[len(list1)//2-1:len(list1)//2+1])
else:
print(list1[len(list1)//2])
2. 已知一个数字列表,求所有元素和。
list2 = [1, 2, 3, 4, 5, 6, 7, 8]
sum1 = sum(list2)
sum2 = 0
for num in list2:
sum2 += num
print(sum1, sum2)
3. 已知一个数字列表,输出所有奇数下标元素。
list3 = [1, 2, 3, 4, 5, 6, 7, 8]
print(list3[1::2])
for index in range(1, len(list3), 2):
print(list3[index], end=',')
print()
for index in range(len(list3)):
if index % 2 == 1:
print(list3[index], end=',')
4. 已知一个数字列表,输出所有元素中,值为奇数的。
list4 = [1, 2, 3, 4, 5, 6, 7, 8]
for num in list4:
if num % 2 == 1:
print(num, end=',')
5. 已知一个数字列表,将所有元素乘二。
list5 = [1, 2, 3, 4, 5, 6, 7, 8]
for index in range(len(list5)):
list5[index] *= 2
print(list5)
6. 有一个长度是10的列表,数组内有10个人名,要求去掉重复的
例如:names = ['张三', '李四', '大黄', '张三'] -> names = ['张三', '李四', '大黄']
names = ['张三', '大黄', '大黄', '张三', '张始', '张尔', '张五', '张琪', '张六', '张五']
# 方法一
names = list(set(names))
print(names)
# 方法二
temp_names = names[:]
for index in range(len(names[:])-1, -1, -1):
if temp_names.pop(index) in temp_names:
names.pop(index)
print(names)
# 方法三(问题未解决)
names = ['张三', '大黄', '大黄', '张三', '张始', '张尔', '张五', '张琪', '张六', '张五']
index = 0
temp_names = names[:]
while index < len(temp_names):
if temp_names.pop(index) in temp_names:
names.pop(index)
continue
index += 1
print(names)
7. 已经一个数字列表(数字大小在0~6535之间), 将列表转换成数字对应的字符列表
例如: list1 = [97, 98, 99] -> list1 = ['a', 'b', 'c']
list7_char = []
for num in range(6536):
list7_char.append(chr(num))
print(list7_char)
print(chr(97))
8. 用一个列表来保存一个节目的所有分数,求平均分数(去掉一个最高分,去掉一个最低分,求最后得分)
list8 = [87, 98, 96, 90, 95, 93, 91]
list8.sort()
list8.pop(0)
list8.pop()
score_sum1 = sum(list8)
score_sum2 = 0
for item in list8:
score_sum2 += item
average_score1 = score_sum1 / len(list8)
average_score2 = score_sum2 / len(list8)
print(list8)
print(average_score1, average_score2)
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 item in A:
if item in B:
C.append(item)
print(C)
10. 有一个数字列表,获取这个列表中的最大值.(注意: 不能使用max函数)
例如: nums = [19, 89, 90, 600, 1] —> 600
nums = [19, 89, 90, 600, 1]
temp = nums[0]
for num in nums:
if temp < num:
temp = num
print(temp)
11. 获取列表中出现次数最多的元素
例如:nums = [1, 2, 3,1,4,2,1,3,7,3,3] —> 打印:3
# 方法一:利用内置函数count()
nums = [1, 2, 3, 1, 4, 2, 1, 3, 7, 3, 3]
temp_nums = list(set(nums))
counts = []
for num in temp_nums:
counts.append(nums.count(num))
for index in range(len(counts)):
if max(counts) == counts[index]:
print('列表中出现次数最多的元素是:', temp_nums[index])
# 方法二:使用原始统计方法
nums = [1, 2, 3, 1, 4, 2, 1, 3, 7, 3, 3]
temp_nums = list(set(nums))
count_1 = count_2 = count_3 = count_4 = count_7 = 0
for num in nums:
if num == 1:
count_1 += 1
elif num == 2:
count_2 += 1
elif num == 3:
count_3 += 1
elif num == 4:
count_4 += 1
else:
count_7 += 1
counts = [count_1, count_2, count_3, count_4, count_7]
for index in range(len(counts)):
if max(counts) == counts[index]:
print('列表中出现次数最多的元素是:', temp_nums[index])