列表

  1. list.append(val)   #末尾追加,直接改变无返回
  2. list.inert(2,val)   #插入到指定位置
  3.  
  4. list.extend(mylist1)  #list会被改变
  5. list2=list+list1   #产生新的,原有的不改变
  6.  
  7. del list[1]  #根据索引删除
  8. del list[:]    #删除全部
  9. list.clear()  #清除原列表所有元素
  10.  
  11. list.remove("value")   #根据元素删除,注意只能删除从左边找到的第一个
  12. list.pop()      #传入索引删除默认删除最后一个元素,也可以传入索引值删除指定位置
  13.  
  14. list.copy()    #返回一个新列表
  15. list[:]       #返回一个新列表
  16.  
  17. list.reverse()  #将原列表翻转
  18. mylist[::-1]    #产生一个新的翻转列表
  19.  
  20. val in list    #判断value是否存在于list中
  21. mylist.index(val)   #返回从左边第一个找到val元素的下标,若列表不存在该元素,则报错
  22. list.count(val)  #返回val在列表中的数目

扩展:双重循环列表解析式

  1. [ j for i in con for j in i if j.isdigit() ]
  2. 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
引伸知识:切片
切片访问一个范围,切片的三个数可为负。也可为空,第一个数为空为最开头,第二个数表示
注意:切片切的时候会产生新的列表,但是新列表里面的元素地址和旧列表相同

字典

  1. #单个元素的增删改查都可以利用索引完成
  2. dict()   #全局工厂方法,接收列表做参数,该列表包含n个元组,元组包含键值对。例如:d=dict([(1,"d"),(2,'www')])-->{1:"d",2:'www'}。所以常用zip方法辅助产生。
  3. dict.fromkeys(list,val)  #批量初始化一些键,并初始化为统一的默认值,例如dict.fromkeys([1,2,3],'testd') {1: 'testd', 2: 'testd', 3: 'testd'}
  4.  #注意:当fromkeys第二个是可变对象时,意味着所以键都指向这个可变对象,所以不能使用这个方法创建值为列表的字典 。禁止mydict = dict.fromkeys(['k1', 'k2'], [])
  5.  
  6. mydict.setdefault(key,val)   #key存在,不赋值,返回的是key对应的已有的值。key不存在,赋值,返回的则是要设置的默认值。某种情况下可以减少赋值次数
  7. mydict.pop(key)  #删除元素
  8.  
  9. mydict.update(b)   #b = {1:2,3:4, "stu1102":"龙泽萝拉"}批量更新,当多于一个键时使用
  10.  
  11. mydict.items()  #返回元素为键值对元组的列表
  12. mydict.keys()   #返回一键列表
  13. mydict.values()   #返回一值列表

集合Set
无序,元素唯一且为不可变类型
有两种集合,set({1,2,3}) 和 {1,2,4}创建的为可变类型
而使用frozenset({1,2,3})创建的为不可变类型,可以将其看作一个排他性的元组
若仅仅去重操作,而不在意元素的本身的顺序,则放心地用吧

  1. myset.add(xx)   #增加元素
  2. myset.update(序列) #将序列拆成子元素,装入,值得注意的是,可以传入字符串
  3.  
  4. myset.pop()   #随机删除,基本不用
  5. myset.remove(xx)   #删除不存在会报错
  6. myset.discard(xx)   #删除,即使不存在,也不会报错
  7.  
  8. val in set     #判断元素是否存在
  9.  
  10. s1.issubset(s2)   #s1是s2的子集吗?
  11. s2.issuperset(s1)   #s2是s1的父集吗?
  12.  
  13. |   #合集
  14. &  #交集 注意,这个的对立面试^,对称差集
  15. -   #差集
  16. ^   #对称差集
  17. >,>= #父集
  18. <,<= #子集

字符串
b'str'型字符串:byte类型
  字节类型,也就是说本身就是个二进制,只不过python人性地根据ascii转化为人性可读
  数据基于网络传输或内存变量存储到硬盘时需要转成bytes类型,但此类字符串只能存储ascall码字符
r'str'型字符串:原始原始字符
  对字符串内容不做任何转义

  1. #str为一个字符串,sub为str的一个子字符串。s为一个序列,它的元素都是字符串。width为一个整数,用于说明新生成字符串的宽度。
  2.  
  3. str.count(sub) 返回:substr中出现的次数
  4. str.find(sub) 返回:从左开始,查找substr中第一次出现的位置。如果str中不包含sub,返回 -1
  5. str.index(sub) 返回:从左开始,查找substr中第一次出现的位置。如果str中不包含sub,举出错误
  6.  
  7. str.rfind(sub) 返回:从右开始,查找substr中第一次出现的位置。如果str中不包含sub,返回 -1
  8. str.rindex(sub) 返回:从右开始,查找substr中第一次出现的位置。如果str中不包含sub,举出错误
  9.  
  10. str.isalnum() 返回:True 如果所有的字符都是字母或数字
  11. str.isalpha() 返回:True,如果所有的字符都是字母
  12. str.isdigit() 返回:True,如果所有的字符都是数字
  13. str.istitle() 返回:True,如果所有的词的首字母都是大写
  14. str.isspace() 返回:True,如果所有的字符都是空格
  15. str.islower() 返回:True,如果所有的字符都是小写字母
  16. str.isupper() 返回:True,如果所有的字符都是大写字母
  17.  
  18. str.split([sep, [max]]) 返回:从左开始,以空格为分割符(separator),将str分割为多个子字符串,总共分割max次。将所得的子字符串放在一个表中返回。可以str.split(',')的方式使用逗号或者其它分割符
  19. str.rsplit([sep, [max]]) 返回:从右开始,以空格为分割符(separator),将str分割为多个子字符串,总共分割max次。将所得的子字符串放在一个表中返回。可以str.rsplit(',')的方式使用逗号或者其它分割符
  20.  
  21. str.join(s) 返回:将s中的元素,以str为分割符,合并成为一个字符串。join只能连接元素为字符串的列表 ,也就说可以接收生成器
  22.  
  23. str.strip([sub]) 返回:去掉字符串开头和结尾的空格。也可以提供参数sub,去掉位于字符串开头和结尾的sub
  24.  
  25. str.replace(sub, new_sub) 返回:用一个新的字符串new_sub替换str中的sub
  26. str.capitalize() 返回:将str第一个字母大写
  27. str.lower() 返回:将str全部字母改为小写
  28. str.upper() 返回:将str全部字母改为大写
  29. str.swapcase() 返回:将str大写字母改为小写,小写改为大写
  30. str.title() 返回:将str的每个词(以空格分隔)的首字母大写
  31.  
  32. str.center(width) 返回:长度为width的字符串,将原字符串放入该字符串中心,其它空余位置为空格。
  33. str.ljust(width) 返回:长度为width的字符串,将原字符串左对齐放入该字符串,其它空余位置为空格。
  34. 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. 用法1:
    conn_dict=dict(
    host='localhost',
    user='root',
    password='Yiyidongwang13@',
    database = 'my_pratice'
    )
  2.  
  3. 用法2:
    d = dict([('a':1),('b':2)])
    #d={'a':1,'b':2}
  4.  
  5. 用法3(合并字典,替代updateupdate会改变原有字典),不过只适用于键值为字符串的
  1. dict1 = {'a': 1, 'b': 2, 'c': 3}
  2. dict2 = {'d': 4, 'f': 5, 'g': 6}
  3. merged_dict = dict(dict1, **dict2)
  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'

扩展:附上字符串的
2)格式化字符串,格式化的参数顺序从0开始,如“I am {0},I like {1}”

· 普通用法
'{1} love {0}'.format('sss','ziyi')
· 取子列表项
'{1[2]} love me {0[0]}'.format([1,2,3],[2,34,5])
Out[40]: '5 love me 1'
· 传入字典,字符串个格式 也要变
'{name} is {age} now'.format(name='ziyi',age=17)

   
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]
def test():
  return li.pop()
myiter = iter(test,3) #一直执行test函数,一直到返回值为3就终止的迭代器。
这个原理在socket编程时有妙用: msg=''.join(partial(conn.recv,1024),b'')

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命令的执行当成是一个函数的执行,会将执行期间产生的名字存放于局部名称空间中

  1. exec:三个参数
  2. 参数一:字符串形式的命令
  3. 参数二:全局作用域(字典形式),如果不指定,默认为globals()
  4. 参数三:局部作用域(字典形式),如果不指定,默认为locals()
  1. g={
  2. 'x':1,
  3. 'y':2
  4. }
  5. l={}
  6.  
  7. exec('''
  8. global x,z
  9. x=100
  10. z=200
  11.  
  12. m=300
  13. ''',g,l)
  14.  
  15. print(g) #{'x': 100, 'y': 2,'z':200,......}
  16. print(l) #{'m': 300}
   
hash(object) 如果对象object为哈希表类型,返回对象object的哈希值
id  内存地址  
type  对象类型
print

print('\r%s %d%%' %(show_str,int(100*percent)),file=sys.stdout,flush=True,end='')

%-50s 代表字符串总长为50,传入的字符往左写,右边用空格。
print(('[%%-%ds]' %500) %'###')

python: 基本数据类型 与 内置函数 知识整理的更多相关文章

  1. Python---基础---数据类型的内置函数

    2019-05-23 ---------------------------- 一. #数据类型的内置函数Python有哪些数据类型?Number   数值型string   字符型list     ...

  2. 建议你吃透python这68个内置函数!

    内置函数就是Python给你提供的, 拿来直接用的函数,比如print,input等. 截止到python版本3.6.2 ,一共提供了68个内置函数,具体如下 abs() dict() help() ...

  3. Python标准库:内置函数hasattr(object, name)

    Python标准库:内置函数hasattr(object, name) 本函数是用来判断对象object的属性(name表示)是否存在.如果属性(name表示)存在,则返回True,否则返回False ...

  4. python字符串——"奇葩“的内置函数

      一.前言 python编程语言里的字符串与我们初期所学的c语言内的字符串还是有一定不同的,比如python字符串里的内置函数就比语言的要多得多:字符串内的书写格式也会有一点差异,例:字符串内含有引 ...

  5. python 类(object)的内置函数

    python 类(object)的内置函数 # python 类(object)的内置函数 ### 首先 #### 以__双下划线开头的内置函数 __ #### __往往会在某些时候被自动调用,例如之 ...

  6. Python数据类型的内置函数之tuple(元组),dict(字典),set(集合)

    Python数据类型内置函数 - str(字符串) - list(列表) - tuple(元组) - dict(字典) - set(收集) tuple(元组)的操作 - (count)统计元组中元素出 ...

  7. Python数据类型的内置函数之list(列表)

    Python数据类型内置函数 - str(字符串) - list(列表) - tuple(元组) - dict(字典) - set(收集) list(列表)的操作 - (append)在列表最后追加指 ...

  8. Python数据类型的内置函数之str(字符串)

    Python数据类型内置函数 - str(字符串) - list(列表) - tuple(元组) - dict(字典) - set(收集) str(字符串)的一些操作 - 字符串相连方法 # 字符串的 ...

  9. Python语法速查: 1. 数据类型与内置函数

    返回目录 (1)常用内置数据类型 分类 类型名称 描述 数字 int 整数 float 浮点数 complex 复数 bool 布尔值 序列 str 字符串(不可变序列) list 列表 tuple ...

随机推荐

  1. 注册 Ironic 裸金属节点并部署裸金属实例

    目录 文章目录 目录 前文列表 注册(Enrollment)裸机 创建裸金属实例的 Flavor 部署裸金属实例 日志分析 问题:Failed to create neutron ports for ...

  2. Monkeyrunner 使用说明

    monkeyrunner为android系统新公开的一个测试工具.有助于开发人员通过脚本部署较大规模的自动化测试. Monkeyrunner       本文档中包含 一个简单的monkeyrunne ...

  3. delphi中and和or的特殊用法

    1=1 10=2 100=4 1000=8 1 or 2 = 3(11); 1 and 3 = 1; 2 and 3 = 2; 2 or 4 = 6(110); 2 and 6 = 2; 4 and ...

  4. 几种排序算法及Java实现排序的几种方式

    几种排序算法 下面的例子介绍了4种排序方法: 冒泡排序, 选择排序, 插入排序, 快速排序 package date201709.date20170915; public class SortUtil ...

  5. Mybatis操作数据时出现:java.sql.SQLSyntaxErrorException: Unknown column 'XXX' in 'field list'

    这个错误比较重要,而且很常见,故单独进行说明: Mybatis出现:Unknown column 'xxx' in 'field list' 先来看一下程序的内部: dao.addUser(" ...

  6. U盘安装Ubuntu Server CD-ROM挂载失败

    U盘安装 Ubuntu Server 发生Failed to copy file from CD-ROM问题 使用UltraISO制作Ubuntu Server安装盘,在安装过程中出现[!!] Loa ...

  7. eve-ng

    eve-ng   eve-ng采用的是和web-iou一样的B/S模式,进步的地方是它只需拖动鼠标就可以搭建拓朴,比web-iou要直观.     此虚拟机已经集成了IOL的L2.L3以及vIOS的L ...

  8. 【神经网络与深度学习】GLog使用笔记

    环境: XPsp3 vs2005 glog-0.3.3 http://download.csdn.net/detail/chenguangxing3/6661667 编译: glog-0.3.3里面有 ...

  9. VS附加到进程调试

    WIN+R 进入cmd命令  输入 netstat -ano | find "进程端口"      找端口 打开vs alt+d+p选择上图对应的进程

  10. 菜鸟系列k8s——k8s集群部署(2)

    k8s集群部署 1. 角色分配 角色 IP 安装组件 k8s-master 10.0.0.170 kube-apiserver,kube-controller-manager,kube-schedul ...