1.已知一个数字列表,求列表中心元素。
numbers1 = [1, 2, 4, 5, 6]
if len(numbers1) % 2 == 0:
print(numbers1[len(numbers1)//2 - 1:len(numbers1)//2 + 1])
else:
print(numbers1[len(numbers1) // 2])
2.已知一个数字列表,求所有元素和。
numbers1 = [1, 2, 4, 5, 6]
print(sum(numbers1))
3.已知一个数字列表,输出所有奇数下标元素。
numbers1 = [1, 2, 4, 5, 6]
print(numbers1[1::2])
4.已知一个数字列表,输出所有元素中,值为奇数的。
numbers1 = [1, 2, 4, 5, 6]
for num in numbers1:
if num % 2:
print(num)
5.已知一个数字列表,将所有元素乘二。
numbers1 = [1, 2, 4, 5, 6]
print([num*2 for num in numbers1])
6.有一个长度是10的列表,数组内有10个人名,要求去掉重复的
例如:names = ['张三', '李四', '大黄', '张三'] -> names = ['张三', '李四', '大黄']
names = ['张三', '王二', '水电', '费士', '大夫', '士大', '撒旦', '水电', '水电','水电', '费士', '撒旦']
#最外的for语句只执行一次,即内部循环次数在开始时确定(0~len(names)-1)
index = 0
# 基本思路:从前往后依次取元素,并将该元素与其列表后所有元素相比,如相同,则删除一个
# 删除操作后,和当前元素及其前方所有元素与比较元素列表重新组成新的列表
# 注意:remove删除第一个匹配时元素,在循环中删除操作时,当有相同元素相连时,会遗漏其中一个的循环
while index < len(names):
compare_names = names[index+1:]
compare_names1 = names[index+1:]
for name in compare_names:
if name == names[index]:
# 若直接在比较的compare_names上操作,当有相同元素相连时,
# 判断并删除完完第一次,列表序列重置,将漏掉一个
compare_names1.remove(name)
names = names[:index+1] + compare_names1
print(names)
index += 1
print(names)
7.已经一个数字列表(数字大小在0~6535之间), 将列表转换成数字对应的字符列表
例如: list1 = [97, 98, 99] -> list1 = ['a', 'b', 'c']
numbers2 = [96, 97, 98]
print([chr(num) for num in numbers2])
8.用一个列表来保存一个节目的所有分数,求平均分数(去掉一个最高分,去掉一个最低分,求最后得分)
scores = [23, 54, 90, 45, 11, 100, 99]
# print(max(scores))
# print(min(scores))
scores.remove(max(scores))
scores.remove(min(scores))
print(scores)
print(sum(scores)/len(scores))
9.有另个列表A和B,使用列表C来获取两个列表中公共的元素
例如: A = [1, 'a', 4, 90] B = ['a', 8, 'j', 1] --> C = [1, 'a']
listA = [1, 'a', 4, 90, 'a']
listB = ['a', 8, 'j', 1, 2, 5]
listC = []
# 假定 listA元素少, listB元素多,如果相反则交换两个列表
if len(listA) > len(listB):
listA, listB = listB, listA
# 以listA中的元素为参考,依次对比listB 如果有,则加入listC
for item in listA:
if item in listB:
listC.append(item)
# 如果listA中有两个相同的元素,而listB中只有对应一个元素的情况,
listB.remove(item)
print(listC)