1.已知一個列表,求列表中心元素。
講解:先判斷列表的個數(shù)是奇數(shù)還是偶數(shù)
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.已知一個列表,輸出所有奇數(shù)下標元素。
講解:
list1 = [15,20,'acd',4,'a',5,'b',8]
for i in range(1,len(list1),2):
print(list1[i])
4.已知一個列表,輸出所有元素中,值為奇數(shù)的。
**講解:
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.已知一個列表,將所有元素乘二。
講解:修改原列表的值,不產(chǎn)生新的列表
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的列表,數(shù)組內(nèi)有10個人名,要求去掉重復(fù)的
例如:names = ['張三', '李四', '大黃', '張三'] -> names = ['張三', '李四', '大黃']
**講解:方法1:用set最簡單,不產(chǎn)生新的列表:
方法: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)
結(jié)論:

作業(yè)6
7.已經(jīng)一個數(shù)字列表(數(shù)字大小在0~65535之間), 將列表轉(zhuǎn)換成數(shù)字對應(yīng)的字符列表
例如: list1 = [97, 98, 99] -> list1 = ['a', 'b', 'c']
**講解:不用產(chǎn)生新的列表
list1 = [65,66,67,96,97,98]
for i in range(0,len(list1)):
list1[i] = chr(list1[i])
print(list1)
結(jié)論:

作業(yè)7
8.用一個列表來保存一個節(jié)目的所有分數(shù),求平均分數(shù)(去掉一個最高分,去掉一個最低分,求最后得分)
**講解:用remove去掉最高分和最低分
結(jié)論:
score_list = []
score = int(input('請輸入一個分數(shù):'))
score_list.append(score)
sum1 = 0
for _ in range(0,5):
score = int(input('請輸入一個分數(shù):'))
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-作業(yè).py
請輸入一個分數(shù):10
請輸入一個分數(shù):20
請輸入一個分數(shù):30
請輸入一個分數(shù):40
請輸入一個分數(shù):50
請輸入一個分數(shù):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)
結(jié)論:

作業(yè)9