# python一些独特的语法

# python多变量赋值

a,b,c=1,2,3
print(a,b,c)
# 1 2 3
# js中这样写会报错

# return

def add(x,y):
	return x+1 ,y+1
	
print(add(1,2))
print(type(add(1,2)) )
#(2,3)
#<class 'tuple'>

def fun(x):
	return x 

print(type(fun(3)))
# #<class 'int'>

TIP

  • return 可以返回多个值
  • 范围多个值是类型为元组
  • a,b=add(1,2)===>和es6解构赋值效果一致

# lambda

简化格式,lambda关键字

f = lambda x:x+2
print(f(8))
# 10

# 列表/元组相关的函数

  1. operator 需要引入
import operator
arr1 = [1,2,3,4,5]
arr2 =[1,2,3,4,5]
print(operator.eq(arr1,arr2))
# True

2.其他 len长度 min最小值 max最大值 sum 求和 sorted升序

arr1 = [1,2,3,4,5,9,8]
print(min(arr1))
print(sum(arr1))
print(max(arr1))
print(len(arr1))
print(sorted(arr1))
# 1
# 32
# 9
# 7
# [1, 2, 3, 4, 5, 8, 9]

arr2=['1','as12',56]
print(len(arr2))
# 3

# 列表修改数据

append(1) 数据添加末尾 extend([1]) 在末尾添加一个数组 count(a) 统计某个元素出现次数 index(100) 在列表中找到第一个对应100元素的索引位置 insert(2,1) 插入将数字1插入列表索引为2的位置 pop(1) 移除列表索引为1的元素

arr = [1,2,3,4,5,9,8]
arr.append(100)
print(arr)

print(arr.count(1))

arr.extend([3,5])

print(arr)

print(arr.index(100))

arr.insert(1,999)
print(arr)

arr.pop(0)
print(arr)

# [1, 2, 3, 4, 5, 9, 8, 100]
# 1
# [1, 2, 3, 4, 5, 9, 8, 100, 3, 5]
# 7
# [1, 999, 2, 3, 4, 5, 9, 8, 100, 3, 5]
# [999, 2, 3, 4, 5, 9, 8, 100, 3, 5]

列表解析

arr =[1,3,5,7]
arr2=[i+2 for i in arr]
print(arr2)
# [3, 5, 7, 9]
a=[1,2,3,4,5,6,7,8]
b=[i*i for i in a]
print(b)
有筛选功能时首选列表推导式如
b=[i*i for i in a if i>=5]
# [25, 36, 49, 64]
students={
	'张三':19,
	'apple':20,
	'wei':21
}

a=[key for key,value in students.items()]
print(a)
# ['张三', 'apple', 'wei']

# 字典

key值需要加引号,不能用.key的形式取值

d={'a':1}
print(d["a"])
# 1

a =dict([['a',1],['b',4]])
print(a)
# {'a': 1, 'b': 4}

# 集合

无序 自动去重

s={1,3,4,1,2,34,5,1,3}
print(s) 
# {1, 2, 3, 4, 34, 5}
  • 并集 |
  • 交集 &
  • 差集 - (在a中不在b中)
  • 对称差集 ^(出现在a或者b中,但不会同时出现在a和b中)

# 函数式编程

  • lambda
  • map
  • reduce
  • filter
a=[1,2,3]
b=[i+2 for i in a]
print(b)
# [3,4,5]
c=map(lambda x:x+2,a)
c=list(c)
print(c)
# [3,4,5]
# map速度比for快很多
map (lambda x,y :x*y,a,b)

# a,b两个列表的元素对应相乘
a=[1,2,3]
b=[1,2,4]
c=map (lambda x,y :x*y,a,b)
c=list(c)
print(c)
[1,4,12]

from functools import reduce

from functools import reduce
a= reduce(lambda x,y : x*y,range(1,6))
print(a)
# 120
b = filter(lambda x:x>5 and x<8,range(10))
b = list(b)
print(b)
#[6,7]

# 导入库

  • import 库名
import math 
math.sin(1)
  • import math as m 起别名
  • from math import exp as e 只导入math库中的exp函数起名为e
  • from math import *
不需要再加math在函数前
sin(1)
最后更新: 9/24/2019, 10:08:47 AM