美文网首页
day6-列表作业

day6-列表作业

作者: 未醒的梦_19b0 | 来源:发表于2018-11-12 21:39 被阅读0次

    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)
    

    结论:

    作业6

    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)
    

    结论:

    作业7

    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)
    

    结论:

    作业9

    相关文章

      网友评论

          本文标题:day6-列表作业

          本文链接:https://www.haomeiwen.com/subject/lticfqtx.html