1.已知一个列表,求列表中心元素
lst = ['a','b','c','d','e']
if len(lst)%2!=0:
print(lst[len(lst)//2])
else:
print(lst[len(lst)//2-1])
'''
结果:c
'''
2.已知一个列表,求所有元素和
lst = [1,2,3,4,5,6,7,8,9]
sum = 0
for num in lst[:]:
sum += num
print(sum)
'''
结果:45
'''
3.已知一个列表,输出所有下标是奇数的元素
lst = ['hello','world','java','c++','python','lisp','c','php','javascript','go','swift']
for word in lst[1::2]:
print(word,end=' ')
print()
'''
结果:world c++ lisp php go
'''
4.已知一个列表,输出所有元素中,值为奇数的元素。
lst = range(101)
for num in lst[1::2]:
print(num,end=' ')
print()
'''
结果:1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99
'''
5.已知一个列表,将所有的元素乘以2。
lst = range(21)
lst2 = []
for num in lst[:]:
lst2.append(num*2)
print(lst2)
'''
结果:[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40]
'''
6.已知一个列表,将所有元素加到第一个元素中。
lst = ['hello','world','java','c++','python','lisp','c','php','javascript','go','swift']
s = ''
for st in lst[:]:
s += st
lst.clear()
lst.append(s)
print(lst)
'''
结果:['helloworldjavac++pythonlispcphpjavascriptgoswift']
'''
7.已知一个列表A,将奇数位置元素存到B列表中,偶数元素存到C列表中。
a = ['hello','world','java','c++','python','lisp','c','php','javascript','go','swift']
b = [] #存储偶数下标列表
c = [] #存储奇数下标列表
for item in a[1::2]:
b.append(item)
for item in a[0::2]:
c.append(item)
print(b)
print(c)
'''
结果:
['world', 'c++', 'lisp', 'php', 'go']
['hello', 'java', 'python', 'c', 'javascript', 'swift']
'''
8.把A列表的前5个元素复制到B列表中。
a = ['hello','world','java','c++','python','lisp','c','php','javascript','go','swift']
b = a[0:5]
print(b)
'''
结果:
['hello', 'world', 'java', 'c++', 'python']
'''
9.有一个长度是10的列表,按递增排列,用户输入一个数,插入适当位置。
lst = [22,33,35,37,40,78,87,99,101,103]
num = int(input("please input a number:"))
i = 0
if num=lst[0]:
while i < len(lst) - 1:
if num >= lst[i] and num <= lst[i + 1]:
lst.insert(i + 1, num)
break
i += 1
if num >= lst[len(lst)-1]:
lst.append(num)
print(lst)
'''
结果:
please input a number:23
[22, 23, 33, 35, 37, 40, 78, 87, 99, 101, 103]
'''
10.自己实现列表的count方法的功能。
def my_count(lst,obj):
'''
:param lst:传入的列表
:param obj:要统计的元素
:return:元素在列表中的次数
'''
count = 0
for i in lst[:]:
if i == obj:
count += 1
return count
lst = [1,2,3,4,2,2,4,5]
print('出现次数:%d'%my_count(lst,2))
'''
结果:出现次数:3
'''
11.自己实现列表的extend方法的功能。
def my_extend(lst1,lst2):
'''
:param lst1: 主列表
:param lst2: 要进行添加的序列
:return: 扩展的列表
'''
if type(lst2) == str or type(list)==list or\
type(lst1)==set or type(lst1)==tuple:
for s in lst2:
lst1.append(s)
elif type(lst2) == dict:
for key in lst2.keys():
lst1.append(key)
return lst1
print(my_extend([1,2],{'1':2,'a':1}))
'''
结果:[1, 2, '1', 'a']
'''
12.自己实现列表的index方法
def my_index(lst,obj):
'''
:param lst:传入列表
:param obj:要寻找的第一次出现下标的元素
:return:下标的位置,返回-1表示此列表无此元素
'''
i = 0 #用来记录下标的变化
while i=0:
print('索引:%d'%my_i)
else:
print('此列表中没有这个元素')
'''
结果:索引:1
'''
13.元组总结
什么是元组?不可变的列表
元组的声明方式:
变量名 = (数据1,数据2,...数据n)
1).多个值之间用逗号隔开,对应的数据也是元组
a = 1,2,4,5 相当于a=(1,2,4,5)
a = 1,2,4,5
print(type(a))
x,y = y,x 相当于 x,y=(y,x)
2).遍历元组
遍历元组和遍历列表一样,可以使用for来进行遍历
a = 1,2,4,5
for i in a:
print(i)
同样也可以通过下标进行获取,元组也可以进行切片
a=(1,2,3,4,5)
a[0]
a[:2]
'''
结果:
1
(1,2)
'''
3).修改元组变量
虽然不能修改元组的值,但是可以通过重新赋值来为修改元组的变量
a =(1,2)
a=(3,4)
print(a)
4).元组的运算
a).+运算:元组进行加运算的时候会生成一个新的元组,把相加的元组的值复制到一个新的地址,并把该地址返回
'''
a=(1,2,3,4,5)
b=(1,2)
c=a+b
id(a) #10057312
id(b) #10176632
id(c) #9991480
'''
b).*操作:元组进行乘运算的时候会生成一个新的元组(重复n次),在新的地址创建元组并存值,并把该地址返回
a=(1,2)
a*3
#(1, 2, 1, 2, 1, 2)
c).in/not in:判断一个元素是否在/不在元组中
a=(1,2)
print(1 in a) #True
d).len(列表):获取元组中的长度,指的就是元组中元素的个数
a=(1,2)
len(序列)
len(a)