1.已知一个列表,求列表中心元素
list1 = [1,4,6,8,3,6,0,4]
if len(list1) == 0:
print('无元素')
elif len(list1) % 2 == 0:
print('中心元素有2个元素分别是:%s 和 %s '%(list1[int(len(list1)/2-1)],list1[int(len(list1)/2)]))
else:
print('中心元素有1个元素是:%s '%(list1[int((len(list1)-1)/2)]))
2.已知一个列表,求所有元素和。
list2 = [1,2,3,4,5,6,7,8,9,10,5.5]
sum1 = 0
sum2 = ''
flag = 1
for i in list2:
if not (isinstance(i, int) or isinstance(i,float)):
flag = 0
break
if flag:
for x in list2:
sum1 += x
print('the sum = '+str(sum1))
else:
for y in list2:
sum2 += str(y)
print('the sum = '+sum2)
3.已知一个列表,输出所有奇数下标元素。
list3 = [1,3,4,5,6]
print(list3[1::2])
4.已知一个列表,输出所有元素中,值为奇数的。
list4 = [2,7,'a','asd','345']
for i in list4:
try:
if i % 2:
print(i,end=' ')
except:
continue
5.已知一个列表,将所有元素乘二。
list5 = [2,4,'6','as']
new_list = [i*2 for i in list5]
print(new_list)
6.已知一个列表,将所有元素加到第一个元素中。
list6 = [1,2,2]
list6_char = []
list6_number = []
sum1 = 0
sum2 = ''
if isinstance(list6[0],int) or isinstance(list6[0],float):
for i in list6:
if isinstance(i,int) or isinstance(i,float):
list6_number.append(i)
else:
list6_char.append(i)
for i in list6_number:
sum1 += i
for i in list6_char:
sum2 += i
if sum2 == '':
result = sum1
else:
result = str(sum1)+sum2
else:
for i in list6:
sum2 += str(i)
result = sum2
list6[0] = result
print('the last list is',list6)
7.已知一个列表A,将奇数位置元素存到B列表中,偶数元素存到C列表中。
A = [3,'a','33',5.8,'//','SSD',3.87,'[]']
B = []
C = []
for i in range(len(A)):
if i % 2:
C.append(A[i])
else:
B.append(A[i])
print('B is',B)
print('C is',C)
8.把A列表的前5个元素复制到B列表中。
A = [3,'a','33',5.8,'//','SSD',3.87,'[]']
B = []
B = B+A[:5]
print('B is',B)
9.把1----36分别放入列表中,计算列表数组对角元素之和。6 * 6的列表
"""
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24
25 26 27 28 29 30
31 32 33 34 35 36
"""
按照我的理解,我猜可能是计算列表数组对角线元素之和,这样写出以下程序:
import math
m = int(input('input the max number of the list(this number need to be sqrted to int):'))
list9 = []
for i in range(1,m+1):
list9.append(i)
print(list9)
n = int(math.sqrt(m))
sum1 = 0
for i in list9:
if (i-1) % (n+1) == 0 or (i-n) % (n-1) == 0:
sum1 += i
print(sum1)
这样实现的是 对于开方出来为整数的数构建从1到该数的数字列表,并且通过遍历该列表实现n*n方阵数列的对角线数字之和。
10.有一个长度是10的列表,列表内有10个不重复的数字,要求按从大到小排序。
list10 = [1,3,5,8,4,6,80,2,12,11]
list10.sort(reverse=True)
print(list10)
11.有一个长度是10的列表,要求删除某一个位置的元素
list11 = [1,3,5,8,'4',6,'sd2',2,12,'a']
n = input('where do you want to delete,please input the index:')
print('before:',list11)
del list11[int(n)-1]
print('now:',list11)
12.有一个长度是10的列表,按递增排列,用户输入一个数,插入适当位置。
list12 = [1,2,3,4,5,6,7,9,10,11]
n = float(input('input a number:'))
for index in range(0,10):
if n <= list12[index]:
list12.insert(index,n)
break
elif index == 9:
list12.append(n)
print('result:',list12)
13.有一个长度是10的列表,数组内有10个人名,要求去掉重复的
list13 = ['abc','abc','tony','tony','s','y','t','uzi','s','t']
list13_new = []
for i in list13[:]:
if i not in list13_new:
list13_new.append(i)
list13 = list13_new[:]
del list13_new
print('result:',list13)
14.把A列表的第三到第六位之间的元素删除。
A = [3,'a','33',5.8,'//','SSD',3.87,'[]']
del A[2:6]
print('result:',A)
15.已知A列表,B列表,定义一个列表C,要求C包含A,B数组中的数据(无重复值)。
A1 = [1,2,3,4,'A','B']
B1 = [3,5,6,4,'B']
C1 = []
temp = A1 + B1
for i in temp[:]:
if i not in C1:
C1.append(i)
del temp
print('result:',C1)