python基础知识整理

古城微笑少年丶 2022-06-12 10:58 431阅读 0赞

python3 -m pip install […] 在python3中使用-m打开某一模块

一、迭代器
for 循环实现迭代器
对于字典的迭代
迭代键值对
for x,y in dict1.items():
… print(x,y)

迭代key值
for x in dict1:
… print(x)

迭代value值
for y in dict1.values():
… print(y)

二、列表生成式
要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11))
直接生成一个列表
[x*x for x in range(1,11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

两层循环生成全排列
[m+n for m in ‘ABC’ for n in ‘XYZ’]
[‘AX’, ‘AY’, ‘AZ’, ‘BX’, ‘BY’, ‘BZ’, ‘CX’, ‘CY’, ‘CZ’]

因此,列表生成式也可以使用两个变量来生成list:

d = {‘x’: ‘A’, ‘y’: ‘B’, ‘z’: ‘C’ }
[k + ‘=’ + v for k, v in d.items()]
[‘y=B’, ‘x=A’, ‘z=C’]

最后把一个list中所有的字符串变成小写:

L = [‘Hello’, ‘World’, ‘IBM’, ‘Apple’]
[s.lower() for s in L]
[‘hello’, ‘world’, ‘ibm’, ‘apple’]

三、生成器(generator)优点是动态生成,节约内存
一边循环一边计算的机制,跟列表生成式差不多,只需要将[]改成(),则变为了生成器,元>素需要一个一个迭代输出,比如通过next(生成器的名称)挨个输出,用for简便输出
如果在一个函数值中有了关键子yield,则此函数不再是普通函数,而是一个generator,注意
yield的用法
四、函数式编程

1、高阶函数
使用map和Iterable
将函数作用于list的每一个元素,然后将结果返回一个迭代器Iterable,最后把迭代返回的>惰性序列重新生成一个新的list对象
def f(x):
… return x*x

li=[1,2,3,4,5,6,7,8,9]
r=map(f,li)
list(r)
[1, 4, 9, 16转换成8进制

七、类和实例转换成8进制

七、类和实例, 25, 36, 49, 64, 81]

reduce的用法:reduce把函数作用在序列上,然后把结果何须列的下一个元素做累加计算
比如,求加法运算
from functools import reduce

def fn(x,y):
… return x*10 +y

reduce(fn,[1,3,5,7,9])
13579

filter()用于过滤序列
filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还>是丢弃该元素。
def is_odd(n):
return n % 2 == 1

list(filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15]))
# 结果: [1, 5, 9, 15]

sorted()实现排序,括号内一个参数是list或是别的,另一个参数控制排序,比如reverse=Ture,从大到小排序,reverse=False,从小到大排序

五、装饰器(decorator)代码运行期间动态增加函数功能
注意@log 打印日志的功能
六、偏函数
转换成n进制的数值 int(‘123445’,base=8)转换成8进制

七、类和实例

实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问,
self.__name=’dsd’

__slots__ 使用
为了达到限制的目的,Python允许在定义class的时候,定义一个特殊的__slots__变量,来限制该class实例能添加的属性:

class Student(object):
__slots__ = (‘name’, ‘age’) # 用tuple定义允许绑定的属性名称

s = Student() # 创建新的实例
s.name = ‘Michael’ # 绑定属性’name’
s.age = 25 # 绑定属性’age’
s.score = 99 # 绑定属性’score’

发表评论

表情:
评论列表 (有 0 条评论,431人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Fragment基础知识整理

     今天主要为大家讲解一下Fragment,因为每一个项目中都会用到Fragment,还记得自己在几年前用过TabActivity来实现导航切换,那阵根本就不知道Fragmen

    相关 Map 基础知识整理

    Map(接口):     与 Collection 并列存在。用于保存具有映射关系的数据:Key-Value。     Key 于 Value 可以是任何引用类型的数据。