day07homework

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)

你可能感兴趣的:(day07homework)