Python学习第九天!
容器选择考虑的问题
1.长度是否固定(Python都可变)
2.其中放置内容的类型是不是一样(Python可以允许)
3.单值(list、set、tuple)、键值对(dict)
4.是否有序(set:无顺序,其他有顺序)
5.是否可以包含重复元素(set/dict不会包含重复元素)
6.针对业务场景实现难易程度
7.对容器的增删改查的性能考虑
a = [1,1,2,3,‘A’,‘B’]
print(a)
b = [1,2,2,3,“ssssssddd11”]
print(b)
c = set(a)
print©
d = {1:“A”,2:231}
print(d)
切片
获取数据,获取容器元素
a = (1,2,3,4,5,6,7,8)
print(a[0:7:2]) #0表示第一个数开始,7表示结束,2表示步长
b = set(a)
print(b)
#print(b[0:3]) # set不能切片,无序的
c = {1:“A”,2:“B”,3:“C”}
print(c[1])
print(list(c.keys())[0:3:1])
列表推导式
a = (1,2,3,4)
def fun(x):
return xxx
b = tuple(fun(y) for y in a)# 生成元组
print(b)
c = list(fun(y) for y in a) # 生成列表
print©
d = {1:“A”,2:“B”,3:“C”}
def fun1(y):
return y.lower()
d2 = {k:fun1(v) for k,v in d.items()}
print(d2)
过滤器filter函数
Python内建的filter()函数用于过滤序列。
和map()类似,filter()也接收一个函数和一个序列。和map()不同的时,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。
例如,在一个list中,删掉偶数,只保留奇数,可以这么写:
def odd(x):
return x%2 == 1
#filter(5):左闭右开【0,1,2,3,4,】
new_list = filter(odd,range(15))
print(list(new_list))
new_list1 = filter(lambda x:x%3==0 and x>5,range(15))
print(list(new_list1))