python: 基本数据类型 与 内置函数 知识整理
列表
list.append(val) #末尾追加,直接改变无返回
list.inert(2,val) #插入到指定位置 list.extend(mylist1) #list会被改变
list2=list+list1 #产生新的,原有的不改变 del list[1] #根据索引删除
del list[:] #删除全部
list.clear() #清除原列表所有元素 list.remove("value") #根据元素删除,注意只能删除从左边找到的第一个
list.pop() #传入索引删除默认删除最后一个元素,也可以传入索引值删除指定位置 list.copy() #返回一个新列表
list[:] #返回一个新列表 list.reverse() #将原列表翻转
mylist[::-1] #产生一个新的翻转列表 val in list #判断value是否存在于list中
mylist.index(val) #返回从左边第一个找到val元素的下标,若列表不存在该元素,则报错
list.count(val) #返回val在列表中的数目
扩展:双重循环列表解析式
[ j for i in con for j in i if j.isdigit() ]
print ("\n".join("\t".join(["%s*%s=%s" %(x,y,x*y) for y in range(1, x+1)]) for x in range(1, 10))) #一行打印出99乘法表
元组
索引、切片、循环、长度、包含(in)、count、index
引伸知识:切片
切片访问一个范围,切片的三个数可为负。也可为空,第一个数为空为最开头,第二个数表示
注意:切片切的时候会产生新的列表,但是新列表里面的元素地址和旧列表相同
字典
#单个元素的增删改查都可以利用索引完成
dict() #全局工厂方法,接收列表做参数,该列表包含n个元组,元组包含键值对。例如:d=dict([(1,"d"),(2,'www')])-->{1:"d",2:'www'}。所以常用zip方法辅助产生。
dict.fromkeys(list,val) #批量初始化一些键,并初始化为统一的默认值,例如dict.fromkeys([1,2,3],'testd') {1: 'testd', 2: 'testd', 3: 'testd'}
#注意:当fromkeys第二个是可变对象时,意味着所以键都指向这个可变对象,所以不能使用这个方法创建值为列表的字典 。禁止mydict = dict.fromkeys(['k1', 'k2'], []) mydict.setdefault(key,val) #key存在,不赋值,返回的是key对应的已有的值。key不存在,赋值,返回的则是要设置的默认值。某种情况下可以减少赋值次数
mydict.pop(key) #删除元素 mydict.update(b) #b = {1:2,3:4, "stu1102":"龙泽萝拉"}批量更新,当多于一个键时使用 mydict.items() #返回元素为键值对元组的列表
mydict.keys() #返回一键列表
mydict.values() #返回一值列表
集合Set
无序,元素唯一且为不可变类型
有两种集合,set({1,2,3}) 和 {1,2,4}创建的为可变类型
而使用frozenset({1,2,3})创建的为不可变类型,可以将其看作一个排他性的元组
若仅仅去重操作,而不在意元素的本身的顺序,则放心地用吧
myset.add(xx) #增加元素
myset.update(序列) #将序列拆成子元素,装入,值得注意的是,可以传入字符串 myset.pop() #随机删除,基本不用
myset.remove(xx) #删除不存在会报错
myset.discard(xx) #删除,即使不存在,也不会报错 val in set #判断元素是否存在 s1.issubset(s2) #s1是s2的子集吗?
s2.issuperset(s1) #s2是s1的父集吗? | #合集
& #交集 注意,这个的对立面试^,对称差集
- #差集
^ #对称差集
>,>= #父集
<,<= #子集
字符串
b'str'型字符串:byte类型
字节类型,也就是说本身就是个二进制,只不过python人性地根据ascii转化为人性可读
数据基于网络传输或内存变量存储到硬盘时需要转成bytes类型,但此类字符串只能存储ascall码字符
r'str'型字符串:原始原始字符
对字符串内容不做任何转义
#str为一个字符串,sub为str的一个子字符串。s为一个序列,它的元素都是字符串。width为一个整数,用于说明新生成字符串的宽度。 str.count(sub) 返回:sub在str中出现的次数
str.find(sub) 返回:从左开始,查找sub在str中第一次出现的位置。如果str中不包含sub,返回 -1
str.index(sub) 返回:从左开始,查找sub在str中第一次出现的位置。如果str中不包含sub,举出错误 str.rfind(sub) 返回:从右开始,查找sub在str中第一次出现的位置。如果str中不包含sub,返回 -1
str.rindex(sub) 返回:从右开始,查找sub在str中第一次出现的位置。如果str中不包含sub,举出错误 str.isalnum() 返回:True, 如果所有的字符都是字母或数字
str.isalpha() 返回:True,如果所有的字符都是字母
str.isdigit() 返回:True,如果所有的字符都是数字
str.istitle() 返回:True,如果所有的词的首字母都是大写
str.isspace() 返回:True,如果所有的字符都是空格
str.islower() 返回:True,如果所有的字符都是小写字母
str.isupper() 返回:True,如果所有的字符都是大写字母 str.split([sep, [max]]) 返回:从左开始,以空格为分割符(separator),将str分割为多个子字符串,总共分割max次。将所得的子字符串放在一个表中返回。可以str.split(',')的方式使用逗号或者其它分割符
str.rsplit([sep, [max]]) 返回:从右开始,以空格为分割符(separator),将str分割为多个子字符串,总共分割max次。将所得的子字符串放在一个表中返回。可以str.rsplit(',')的方式使用逗号或者其它分割符 str.join(s) 返回:将s中的元素,以str为分割符,合并成为一个字符串。join只能连接元素为字符串的列表 ,也就说可以接收生成器 str.strip([sub]) 返回:去掉字符串开头和结尾的空格。也可以提供参数sub,去掉位于字符串开头和结尾的sub str.replace(sub, new_sub) 返回:用一个新的字符串new_sub替换str中的sub
str.capitalize() 返回:将str第一个字母大写
str.lower() 返回:将str全部字母改为小写
str.upper() 返回:将str全部字母改为大写
str.swapcase() 返回:将str大写字母改为小写,小写改为大写
str.title() 返回:将str的每个词(以空格分隔)的首字母大写 str.center(width) 返回:长度为width的字符串,将原字符串放入该字符串中心,其它空余位置为空格。
str.ljust(width) 返回:长度为width的字符串,将原字符串左对齐放入该字符串,其它空余位置为空格。
str.rjust(width) 返回:长度为width的字符串,将原字符串右对齐放入该字符串,其它空余位置为空格。
数字类型
对于小数取位数时常用有。round(num,小数位)、math.floor 和 math.ceil
文件
1、刚调用f.write不会马上写到文件中,因为写入的内容都在内存(缓冲区中),需要调用f.flush()冲出来
2、在windows中换行是\r\n,但是python中文件处理会统一为\n,如果不需要,则在open('xx.txt','r',newline='')
3、file.read(4)可以传入参数,表示要去读取的字符个数,如果是b模式,则是字节数
4、文件截断:f.truncate(10) #表示文件从开头的十个位置,后面的都不要了,常用于‘r+’的重新写入
5、truncate是截断文件,所以文件的打开方式必须可写,但是不能用w或w+等方式打开,因为那样直接清空文件了,常见于 在r+模式下重写文件f.truncate(0)
5、写文件时候注意打开方式,什么+都行,就是w+不行。因为w+模式会把原来的内容清空
6、f.seek方法,移动的是字节数
7、f.readlines可以返回一个以换行为分隔的列表,(读取最后一行的时候,这个方法可以配合f.seek(x,2)利用)
8、f.write和writelines的区别,前者参数为字符串,后者为序列
9、同时用with语句打开两个文件:with open('f1.txt','r')as f1,open('f2.txt','w') as f2: 注意的是第二个open没有with
10、open函数,会查询系统的默认编码,作为打开文件时解码
可以传入encoding参数,例如,f=open('sss.txt','r+',encoding='utf-8'),这是因为每个文件的编码格式都有可能不一样,这个参数可以确保其用utf-8解码至Unicode.
当若以b模式打开,则不能使用encoding函数,因为读出来就是源生二进制,不会做任何转换
11、文件操作,使用for line in file 等迭代操作时,不能使用file.tell()。使用file.readline()则可以
12、使用file.readline判断文件结尾,
temp=f.tell()
f.seek(0,2) == temp
内置函数
以下为常用,更加详细点击这里
abs(x) | 绝对值 |
divmod(a, b) | 分别取商和余数,注意:整型、浮点型都可以 |
int([x[, base]]) | 将一个字符转换为int类型,base表示进制 int('0b010010',base=2) 表示以二进制识别字符串并把其转化为十进制 |
float([x]) | 将一个字符串或数转换为浮点数。如果无参数将返回0.0 |
bool([x]) | 将x转换为Boolean类型 |
dict([arg]) |
字典工厂方法 用法1:
|
list([iterable]) | 将一个集合类转换为另外一个集合类 可传入生成器参数 |
set() | 集合工厂方法 |
frozenset() | 冷冻集合工厂方法 |
str([object]) | 字符串工厂方法 |
tuple([iterable]) | 元组工厂方法 |
pow(x, y[, z]) | 返回x的y次幂,即x**y |
round(x[, n]) | 四舍五入 |
sum(iterable[, start]) | 对集合求和 |
oct(x) | 将一个数字转化为8进制 |
hex(x) | 将整数x转换为16进制字符串 |
chr(i) | 返回整数i对应的ASCII字符 ord('A') -->65, chr(65)-->'A' |
bin(x) | 将整数x转换为二进制字符串 |
format(value [, format_spec]) | 1)除了字符串的format函数之外,还有一个内置函数format可以将数字格式化指定格式字符串,例如format(3,'b') #转换成二进制 '11'
扩展:附上字符串的 · 普通用法 |
zip([iterable, ...]) | 要求参数为长度相同的列表,各取一个元素打包为元组,在拼成列表 a = [1,2,3] b = [4,5,6] zip(a,b)-->[(1, 4), (2, 5), (3, 6)] |
sum(iterable[, start]) | 对集合求和 |
max(iterable[, args...][key]) | 返回集合中的最大值 |
min(iterable[, args...][key]) | 返回集合中的最小值 |
sorted(iterable[, cmp[, key[, reverse]]]) | 队集合排序 |
reduce(function, iterable[, initializer]) | python3没有该函数,需要导入functools 类似于int sum = accumulate(va.begin(), va.end(), 0, [](int a,int b) {return a*10 + b; }); 叠加集合函数,传入的函数需要得具备两个参数 |
filter(function, iterable) | 构造一个序列,等价于[ item for item in iterable if function(item)] 1、参数function:返回值为True或False的函数,可以为None 2、参数iterable:序列或可迭代对象 |
map(function, iterable, ...) | 遍历每个元素,执行function操作,相当于C++的each map函数返回的结果是,由lambda 返回的值(原列表一个元素,lambda执行一次),组成的一个新列表 |
iter(o[, sentinel]) | 1)返回一个对象的迭代器 2)iter()可将函数转化为迭代器,可以令函数一直执行直到某种条件终止。 例如:li=[1,2,3,4,5,6] |
enumerate(sequence [, start = 0]) | 返回一个枚举生成器,下标0开始 |
all(iterable) | 1、集合中的元素都为真的时候为真 2、特别的,若为空串返回为True |
any(iterable) | 1、集合中的元素有一个为真的时候为真 2、特别的,若为空串返回为False |
cmp(x, y) | 如果x < y ,返回负数;x == y, 返回0;x > y,返回正数 |
对比 1 and 0 or 2 返回 True | 因为1and0 返回false,False or 2返回True |
globals() | 返回一个描述当前全局符号表的字典 |
loacals() | 返回当前可见的变量列表 |
vars() | 和dir方法类似,dir的是属性列表,这个是属性字典 |
dir() | 1、不带参数时,返回当前范围内的变量、方法和定义的类型列表; 2、带参数时,返回参数的属性、方法列表。 3、如果参数包含方法__dir__(),该方法将被调用。当参数为实例时。 4、如果参数不包含__dir__(),该方法将最大限度地收集参数信息 |
callable(object) | 检查对象object是否可调用 |
isinstance(object, classinfo) | 判断object是否是class的实例 |
issubclass(class, classinfo) | 判断是否是子类 |
eval(expression [, globals [, locals]]) | 将字符串按照python语法规则转化为代码执行 |
exec | 类似于eval,但是没有返回值 可以把exec命令的执行当成是一个函数的执行,会将执行期间产生的名字存放于局部名称空间中 exec:三个参数 g={ |
hash(object) | 如果对象object为哈希表类型,返回对象object的哈希值 |
id | 内存地址 |
type | 对象类型 |
print('\r%s %d%%' %(show_str,int(100*percent)),file=sys.stdout,flush=True,end='') %-50s 代表字符串总长为50,传入的字符往左写,右边用空格。 |
python: 基本数据类型 与 内置函数 知识整理的更多相关文章
- Python---基础---数据类型的内置函数
2019-05-23 ---------------------------- 一. #数据类型的内置函数Python有哪些数据类型?Number 数值型string 字符型list ...
- 建议你吃透python这68个内置函数!
内置函数就是Python给你提供的, 拿来直接用的函数,比如print,input等. 截止到python版本3.6.2 ,一共提供了68个内置函数,具体如下 abs() dict() help() ...
- Python标准库:内置函数hasattr(object, name)
Python标准库:内置函数hasattr(object, name) 本函数是用来判断对象object的属性(name表示)是否存在.如果属性(name表示)存在,则返回True,否则返回False ...
- python字符串——"奇葩“的内置函数
一.前言 python编程语言里的字符串与我们初期所学的c语言内的字符串还是有一定不同的,比如python字符串里的内置函数就比语言的要多得多:字符串内的书写格式也会有一点差异,例:字符串内含有引 ...
- python 类(object)的内置函数
python 类(object)的内置函数 # python 类(object)的内置函数 ### 首先 #### 以__双下划线开头的内置函数 __ #### __往往会在某些时候被自动调用,例如之 ...
- Python数据类型的内置函数之tuple(元组),dict(字典),set(集合)
Python数据类型内置函数 - str(字符串) - list(列表) - tuple(元组) - dict(字典) - set(收集) tuple(元组)的操作 - (count)统计元组中元素出 ...
- Python数据类型的内置函数之list(列表)
Python数据类型内置函数 - str(字符串) - list(列表) - tuple(元组) - dict(字典) - set(收集) list(列表)的操作 - (append)在列表最后追加指 ...
- Python数据类型的内置函数之str(字符串)
Python数据类型内置函数 - str(字符串) - list(列表) - tuple(元组) - dict(字典) - set(收集) str(字符串)的一些操作 - 字符串相连方法 # 字符串的 ...
- Python语法速查: 1. 数据类型与内置函数
返回目录 (1)常用内置数据类型 分类 类型名称 描述 数字 int 整数 float 浮点数 complex 复数 bool 布尔值 序列 str 字符串(不可变序列) list 列表 tuple ...
随机推荐
- Android中IntentService与Service
Android中的Service是用于后台服务的,当应用程序被挂到后台的时候,问了保证应用某些组件仍然可以工作而引入了Service这个概念,那么这里面要强调的是Service不是独立的进程,也不是独 ...
- Steps 步骤条
引导用户按照流程完成任务的分步导航条,可根据实际应用场景设定步骤,步骤不得少于 2 步. 基础用法 简单的步骤条. 设置active属性,接受一个Number,表明步骤的 index,从 0 开始.需 ...
- 性能测试的 Check List (不断更新中)
1. 开发人员是否提交了测试申请?2. 测试对象是否已经明确?3. 测试范围是否已经明确?4. 本次不被测试的范围是否已经明确?5. 测试目标是否已经明确?6. 何时开始性能测试?7. 何时终止一轮性 ...
- 深入理解红黑树及C++实现
介绍 红黑树是一种特殊的平衡二叉树(AVL),可以保证在最坏的情况下,基本动态集合操作的时间复杂度为O(logn).因此,被广泛应用于企业级的开发中. 红黑树的性质 在一棵红黑树中,其每个结点上增加了 ...
- centos 7.3镜像制作
1.在KVM环境上准备虚拟机磁盘 [root@localhost ~]# qemu-img create -f qcow2 -o size=50G /opt/CentOS-7-1511-x86_64_ ...
- 解决vmware fusion + centos 7安装vmtools时提示The path "" is not a valid path to the xxx kernel headers.
近日使用VMware fushion 8 + centos 7.0时,无法使用共享功能,所以必须安装vmtools.但是安装过程中有2个错误需要解决. 1.gcc错误 Searching for GC ...
- HTML中Data的数据类型
"data"类型的Url格式,是在RFC2397中提出的,目的对于一些“小”的数据,可以在网页中直接嵌入,而不是从外部文件载入. 例如对于img这个Tag,哪怕这个图片非常非常的小 ...
- 直方图匹配原理与python、matlab实现
直方图匹配本质上是让两幅图像的累积直方图尽量相似,累积直方图相似了,直方图也就相似了. 把原图像img的直方图匹配到参考图像ref的直方图,包括以下几个步骤: 1. 求出原图像img的累积直方图img ...
- Spring MVC 源码 分析
spring web 源码 @HandlesTypes(WebApplicationInitializer.class) public class SpringServletContainerInit ...
- icon.css
.icon-blank{ background:url('icons/blank.gif') no-repeat; } .icon-add{ background:url('icons/edit_ad ...