day6-列表作业

2018-11-12  本文已影响0人  未醒的梦_19b0

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
上一篇下一篇

猜你喜欢

热点阅读