# 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
# 列表/元组相关的函数
- 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)
← python python数据分析 →