python入门知识总结

python入门知识总结


提示:


前言

python的基础由潜入深的理解,具体详解内容来自网站
https://www.liaoxuefeng.com/wiki/1016959663602400/1017092876846880



一、python的tuple和list

list和tuple的最大区别是:list是可变类型,tuple是不可变类型

# list和tuple都有切片操作,
L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
# 取前三个元素
L[0:3]
L[:3]
# 取最后一个
L[-1]
# 前四个, 每两个取一个
L[0:4:2]

# 后三个元素
L[-3:]

2. 迭代

在python中迭代使用关键字为 for 循环,其内部封装了next()和iter() 方法

# 只要是可迭代对象,都可以用for循环进行迭代, 数据类型是 tuple还是list

for i in 'anc':
    print(i)
for i in [1,2,3,4]:
	print(i)

# 判断一个对象是否可迭代使用 collections
from collections import Iterable
isinstance('abc', Iterable) # True
isinstance([a, b], Iterable) # True
isinstance(12, Iterable) # False


3.列表生成式

  • 简单的介绍几种常见的列表生成式
# 一般的列表生成式
「x*x for x in range(10)]
#带有 if的判断语局的列表生成式
「x for x in range(100) if x%2==0]

# if else 的判断语句,因为列表推到式的for循环后一定要有一个结果,所以列表推到式的if else语句放在for前面
「 x*x if x%2==0 else None for x in range(100)]

# 多层嵌套的for循环, 生成的是一个 n*m的数组
「 m +n for m in 'abc' for n in 'xyz']

生成器

  • 生成器的理解:对于元素列表的数据可以可以不必完整的创建,而是根据边循环边计算的方式展示出需要的数据,可以大大节省内存空间
  • 创建一个generator, 最简单的方式是 把列表推到式的 「」变为 ()
g = (m for i in range(100))  # g就是生成器 <generator object>

 # 可以通过next()打印要打印的数据
 next(g)
 next(g)  # 到最后会抛出 StopIteration 的异常,所以我们对生成器一般使用for循环进行操作
 for i in g:
 	print(i)
  • yield 关键字的生成器
# 对于一个函数,如果有yield关键字,就是一个生成器
def func()
  print('stup1')
  yield 1
  print('stup2')
  yield 2
a = func()
next(a)

迭代器

  • 概念: 可以被 next()函数调用并返回下一个值的对象的叫称为迭代器 Iterator, 而可以被for循环迭代的,不能操作next() 的统称为可迭代 Iterable
# 可以通过 collection.Iteration  判断是否是迭代器
from collection import Iteration
isinstance([], Iteration)  # False
isinstance((), Iteration) # False
isinstance((i in for rnage(10), Iteration) # True

# 判断是否是可迭代 Iterable
from collection import Iterable
isinstance([], Iterable) # True
isinstance('abc', Iterable) # True
isinstance(123, Iterable) # False

高阶函数

  • python常见内置的高阶函数有 map(), sorted(), filter(), lambad表达式

map 内置函数

# map() 可以接收多个参数, 一个是函数名f,其他的是可迭代对象, 返回的结果是一个迭代器Iterator

def func(x):
	return x*x
si = map(func, (1,2,3)
print(next(si)) # 1
print(next(si)) # 4

def func2(x,y):
	return x*y
si2 = map(func2, (1,3,5), (2,4,6))
print(next(si2))  # 2
print(next(si2)) # 12
print(next(si2)) # 30

filter 内置函数

# filter() 第一个参数也是接收函数,后面接收的是可迭代对象, 把返回True的值返回, 返回的也是一个迭代器Iterator
def not_empty(s):
    return s and s.strip()

list(filter(not_empty, ['A', '', 'B', None, 'C', '  ']))
# 结果: ['A', 'B', 'C']

sorted 内置函数

# sorted()可以比较两个值的大小,如果是比较非数据,则没有意义,我们可以通过函数进行比较出来
sorted([36, 5, -12, 9, -21])
# 按绝对值进行比较
sorted([36, 5, -12, 9, -21], key=abs# [5, 9, -12, -21, 36]

sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower)  #'about', 'bob', 'Credit', 'Zoo']

# sortd的key也可以传入函数,使用函数的结果来进行排序
# 按成绩高低来排序
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
def by_score(t)
	return t[1]
sort(L, by_score)   # [('Bart', 66), ('Bob', 75), ('Lisa', 88), ('Adam', 92)]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值