lambda() 匿名函数
匿名函数的用法 : lambda( 参数 : 函数的返回值 )
普通函数的写法
foo = [2,6,7,4,3]
def a(x):
return x+1
print(a(1)) # 2
匿名函数的写法
a = lambda x : x+1
print(a(1)) # 2
filter() 函数
用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
普通函数的写法
foo = [2,6,7,4,3]
def a(x):
return x%2 #若想得到偶数,返回值应该是1-X%2
a = filter( a, foo) #返回的余数x%2,为0的话则是false,筛选掉;为1的话打印出来,所以打印的值都是奇数
print(list(a))
匿名函数写法
foo = [2,6,7,4,3]
b = filter(lambda x : x % 2, foo ) # filter(lambda x :True if x%2 == 0 else False, foo)
print(list(b))
zip() 函数
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
list1 = [1,8,3,4,61,2]
list2 = [5,6,8,1,63,7,5,9,20]
c= zip(list1,list2)
print(lsit(c)) #(1, 5) (8, 6) (3, 8) (4, 1) (61, 63) (2, 7)
# print(*c) , 利用 * 号操作符,可以将元组解压为列表
format()格式化函数
Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。
基本语法是通过 {} 和 : 来代替以前的 % 。
format 函数可以接受不限个参数,位置可以不按顺序。
a = "{} {}".format("hello", "world") # 不设置指定位置,按默认顺序
print(a) #'hello world'
b = "{0} {1}".format("hello", "world") # 设置指定位置
print(b) #'hello world'
c = "{1} {0} {1}".format("hello", "world") # 设置指定位置
print(c) #'world hello world'
#数字格式化
print("{:.2f}".format(3.1415926)); #3.14 (保留小数点后两位)
为列表添加元素的几个方法
member = ['python','java']
#append():在列表后面添加一个元素
member.append("js") # ['python','java','js']
#extend():在数组后面添多个元素 一定要加[ ] (把一个列表拓展到另外一个列表)
member.extend(["哈哈哈","呵呵呵"]) # ['python', 'java', '哈哈哈', '呵呵呵']
#list.insert(index, obj)
member.insert(0,"嘿嘿嘿") # ['python', 'java', '哈哈哈', '呵呵呵','嘿嘿嘿']
print(member)
删除列表的元素
member = ['python','java','js',''vue'']
#直接根据元素内容来删
member.remove("java") #member = ['python','js','vue']
#根据元素的位置来删
del member[1] #member = ['python','vue']
# 默认删除最后一项,即pop(-1)
member.pop() #member = ['python']
print(member)
分片
分片提取相应部分数据 通常上边界不包括在提取字符串内
如果没有指定值,则分片的边界默认为0和序列的长度
member = ["1","12","3","23"]
#截取出所有的字符串
member[:] #["1","12","3","23"]
#截取出索引为2~4之间的字符串 不会截取索引为2的字符串
member[0:2] #["1","12"]
member = [1, 21, 12, 312, 123, 5]
#当member的排序发生改变时,以下两种情况,分片的方式不会变,而直接赋值会跟随member的值而变动
one = member[:]
two = member
member.sort()
# 利用分片拷贝一份了member,所以打印出来的值还是和sort之前的值一样的
print(one) #[1, 21, 12, 312, 123, 5]
#直接赋值只是增加了一个指向member的变量,member发生改变的时候,two也会跟着改变
print(two) #[1, 5, 12, 21, 123, 312]