生成器推导式,产生生成器对象
s=(x*2 for x in range(5))
tuple(s) 转换为元组,用完一次s失效
s._next_()指针调动,输出当前值并下移
生成器推导式,产生生成器对象
s=(x*2 for x in range(5))
tuple(s) 转换为元组,用完一次s失效
s._next_()指针调动,输出当前值并下移
通过切片访问返回的还是元组
元组排序只能用sorted(),并生成列表
zip(list1,list2,list3),返回zip对象并将每个列表转化为元组
元组是不可变序列
创建元组
a=(,,,)
a=tuple(字符,数字,列表)
多维列表:列表嵌套
a[一维引索][二维引索]
列表排序 修改原列表,不建立新列表
list.sort()默认升序排列
list.sort(reverse=True)降序排列
import random
random.shuffle(list)
列表排序,建立新列表
new_list=sorted(list),升序
new_list=sorted(list,reverse=True),降序
c=reversed(list)返回逆序排列的迭代器对象,只能用一次
max(list), min(list)
sum(list),数值型列表可用
列表元素提取
list[起始位置:终点位置:step], 从起始位置到终点-1位置,step为-1时反向提取
list.index(值,位置1,位置2)返回位置1-到位置2之间的第一个“值”的位置。
list.count(值)
成员资格
值 in (not in) list,返回True,False
列表元素删除
del a[位置],有数组拷贝,地址不变
list.pop(位置),删除位置上的元素并返回元素值
list.remove(值),删除第一个指定值,不存在就报错。
类名首字母大写
常量全大写、下划线
其他命名全小写、下划线
列表增加,删除
append(),
尽量减少在列表中间修改,涉及大量复制会消耗内存,尽量在尾部删,增。
a=a+[],非尾部添加,实际是创建新列表,耗内存
expend(),
原地址尾部添加
expend([50,60]),不改变地址,适合两个列表对接
insert(索引,值) 元素插入指定位置,设计大量拷贝,地址不变
列表乘法 a=a*3
列表创建
a=[,,,,,]
a=list[range()]
range[star, end, step]
推导式
a=[x*2 for x in range(100) if x%9==0]
序列:存放多个值(对象)对应地址的连续内存空间
字符串,列表,元组,字典,集合
list.append(x)
异或:相同为0,不同为1
&按位与,|按位或,^按位异或;
左移两位 a<<2,相当于乘以4
右移1位 a>>1,相当于除2,位移速度更快
运算优先级
**指数
~按位翻转
* / % // 乘除 取余数 整数除
+ - 加减
>>,<<位移
&
^,|
< = > 比较运算
=,赋值运算
is, is not 逻辑运算
in, not in
not, or , and
可变字符串
字符串属于不可变对象,不能在原地址修改
io模块可以生成可变字符串
new_str=io.StringIo(str)
new_s.getvalue()
new_s.seek("被修改的位置引索")
new_s.write("修改后内容")
a="参数1,参数2" 定义字符串格式
a.format(参数1="str",参数2="str") 带入格式
a="{0},{1}"定义字符串格式
{索引:填充字符居中方式位数}
a.format("str","str")带入0,1位置对应的字符
整数:
10进制、2进制、8进制、16进制;
用int()实现类型转换,不能转换字符串
自动转型:整数和浮点型混合运算时,表达结果自动转型成浮点数
在python里面,int可以存储任意大小的整数,google这个词本身就代表10的100次方
内置数据类型:
整型:整数;浮点:小数;布尔型:表示真假,包括Ture 和 False;字符串型:abc,尚学堂等;
运算符:
加——+
减——-
乘——*
浮点数除法——/
整数除法——//(取整数)
模(取余数)——%
幂——**
·0 不能做除数
divmod()函数可以同时得到商和余数
1.链式赋值:
x=y=123,把同一个变量赋值给多个变量
2.系列接包赋值:a,b,c = 1,2,3
把a赋值为1,b赋值为2,c赋值为3,注意:个数要一致;
使用系列解包的变量变换
3.常量:python不支持常量,即没有语法规则限制改变一个常量的值,对于一个变量来说,赋值是可以更改的。常量的名称都大写,用下划线隔开。
str.find("从前查找字符")
str.rfind("从后查找字符")
str.count("str")数次数
str.isalnum()是否全数字字符
"str".strip("str")除去首位信息
str.capitalize()首字母大写
str.title()各单词首字母大写
str.upper()全大写
str.swapcase()大小互换
a.center(num,"str") a居中,num位,str填充
a.ljust()a靠左
a.rjust()a靠右
只包含数字,下划线,字母的字符串启用驻留机制,值一样地址就一样