字符串格式化

var = 'abcde'
# 切片
print(var[2],var[-1]) # c e
print(var[1:3:1],var[-2:-5:-1],var[::-1]) # bc dcb edcba
# 单元素赋值
#var[2] = '1' # TypeError: 'str' object does not support item assignment
# 格式化
var1 = '{},welcome to {}'.format('osan','china')
var2 = '{2},welcome to {1}'.format('osan','china','misaki')
var3= '{a},welcome to {b}'.format(a='osan',b='china')
var4= '{0[2]},welcome to {0[1]}'.format(['osan','china','misaki'])
data = {'a':'osan','b':'china'}
var5 = '{a},welcome to {b}'.format(**data)
print(var1) # osan,welcome to china
print(var2) # misaki,welcome to china
print(var3) # osan,welcome to china
print(var4) # misaki,welcome to china
print(var5) # osan,welcome to china
# 特殊用法-保留小数位
var = '{:.4f}'.format(3.1415926)
print(var) # 3.1416

字符串检测

vars = 'kuroko'
print(vars.capitalize()) # Kuroko 首字母大写
vars = 'siroi kuroko'
print(vars.title()) # Siroi Kuroko 标题格式(每个单词的首字母大写)
print(vars.upper()) # SIROI KUROKO 大写
print(vars.upper().lower()) # siroi kuroko 小写
vars = 'ZeroTsu'
print(vars.swapcase()) # zEROtSU 大小写转换
print(vars.isupper(),vars.upper().isupper()) # False True 是否大写
print(vars.islower(),vars.lower().islower()) # False True 是否小写
vars = 'fate staynight'
print(vars.istitle(),vars.title().istitle()) # False True 是否标题格式
vars2 = 'fatestaynight2020'
print(vars.isalnum(),vars2.isalnum()) # False True 是否由(中文/英文字符/数字字符)组成
vars3 = 'keiyakusya'
print(vars2.isalpha(),vars3.isalpha()) # False True 是否由(英文字符)组成
var4 = '2020'
print(vars3.isdigit(),var4.isdigit()) # 是否由(数字字符)组成 False True
vars5 = ' '
print(vars.isspace(),vars5.isspace()) # 是否由(空格)组成 False True
print(vars3.startswith('ke'),vars3.startswith('ku',5)) # 是否以ke开头 True True
print(vars3.endswith('sya'),vars3.endswith('ku',0,7)) # 是否以sya结尾 True True

字符串查找

vars3 = 'keiyakusya'
print(vars3.find('k',0,6),vars3.rfind('k',0,6),vars3.find('b')) # 0 5 -1
print(vars3.index('k',0,6),vars3.rindex('k',0,6)) # 0 5
#print(vars3.index('b')) ValueError: substring not found
print(vars3.count('k')) # 2

字符串操作

# 分尸
vars = 'userid=000000&type=admin&sex=f'
res = vars.split('&')
print(res) # ['userid=000000', 'type=admin', 'sex=f']
for i in res:
a = i.split('=')
print(a) # ['userid', '000000'] ['type', 'admin'] ['sex', 'f']
# 接上
print(','.join(res)) # userid=000000,type=admin,sex=f
# 花式分尸
print(vars.split('&',1)) # ['userid=000000', 'type=admin&sex=f']
print(vars.rsplit('&',1)) # ['userid=000000&type=admin', 'sex=f']
# 去两端字符
vars = '**去除**星号***'
print(vars.strip('*')) # 去除**星号
print(vars.lstrip('*')) # 去除**星号***
print(vars.rstrip('*')) # **去除**星号
# 替换
vars = '替换abcabcabc'
print(vars.replace('a','A')) # 替换AbcAbcAbc
print(vars.replace('a','A',2)) # 替换AbcAbcabc
# 填充
vars = '对称填充'
print(vars.center(12,'*')) # ****对称填充****
print(vars.center(13,'*')) # *****对称填充****
vars = '填充'
print(vars.ljust(6,'*')) # 填充****
print(vars.rjust(6,'*')) # ****填充

列表基本操作

varlist1 = [1,2,3]
varlist2 = ['a','b','c']
print(varlist1+varlist2) # [1, 2, 3, 'a', 'b', 'c'] 拼接
print(varlist1*2) # [1, 2, 3, 1, 2, 3] 重复
print('a' in varlist2) # True 是否包含
# varlist1[3] = 4 IndexError: list assignment index out of range
varlist1.append(4) # 添加
print(varlist1,len(varlist1)) # [1,2,3,4] 4
del varlist1[3] # 指定删除
print(varlist1,len(varlist1)) # [1,2,3] 3
print(varlist1.pop(),varlist1) # 3 [1, 2] 最后一个删除

列表切片

varlist = ['列','表','切','片','操','作']
print(varlist) # ['列', '表', '切', '片', '操', '作']
varlist[1:3] = '23'
print(varlist) # ['列', '2', '3', '片', '操', '作']
varlist[1:3] = 'b'
print(varlist) # ['列', 'b', '片', '操', '作']
varlist[1:3] = '234'
print(varlist) # ['列', '2', '3', '4', '操', '作']

列表相关函数

varlist = ['a','b','c','a','f','g']
print(len(varlist),varlist.count('a')) # 6 2 长度,某个字符在列表中出现的次数
varlist.insert(0,'aa') # 指定位置添加
varlist.append('gg') # 在最后添加
print(varlist) # ['aa', 'a', 'b', 'c', 'a', 'f', 'g', 'gg']
res = varlist.pop() # 弹出最后一个元素
print(res,varlist) # gg ['aa', 'a', 'b', 'c', 'a', 'f', 'g']
res = varlist.pop(0) # 弹出指定位置的元素
print(res,varlist) # aa ['a', 'b', 'c', 'a', 'f', 'g']
res = varlist.remove('a') # 删除指定元素
print(res,varlist) # None ['b', 'c', 'a', 'f', 'g']
print(varlist.index('a'),varlist.index('a',1,4)) # 2 2 元素在列表中的索引
varlist.extend('扩展元素') # 作为多个元素添加
print(varlist) # ['b', 'c', 'a', 'f', 'g', '扩', '展', '元', '素']
varlist.reverse() # 列表内容倒过来
print(varlist) # ['素', '元', '展', '扩', 'g', 'f', 'a', 'c', 'b']
varlist.clear() # 清空
print(varlist) # []
# 排序
varlist = [5,2,1,8,-3,6]
varlist.sort()
print(varlist) # [-3, 1, 2, 5, 6, 8]
varlist.sort(reverse=True,key=abs)
print(varlist) # [8, 6, 5, -3, 2, 1]
# 拷贝
varlist1 = ['a','b','c',[1,2]]
varlist2 = varlist1.copy()
print(varlist1,varlist2) # ['a', 'b', 'c', [1, 2]] ['a', 'b', 'c', [1, 2]]
del varlist2[2]
print(varlist1,varlist2) # ['a', 'b', 'c', [1, 2]] ['a', 'b', [1, 2]]
del varlist2[2][0]
print(varlist1,varlist2) # ['a', 'b', 'c', [2]] ['a', 'b', [2]]

列表的深拷贝与浅拷贝

#浅拷贝
varlist1 = [1,2,3,4]
varlist2 = varlist1.copy()
del varlist2[3]
print(varlist1,id(varlist1)) # [1, 2, 3, 4] 2235588760072
print(varlist2,id(varlist2)) # [1, 2, 3] 2235588760584
varlist1 = [1,2,['a','b','c']]
varlist2 = varlist1.copy()
del varlist2[2][2]
print(varlist1,id(varlist1[2])) # [1, 2, ['a', 'b']] 1962166488968
print(varlist2,id(varlist2[2])) # [1, 2, ['a', 'b']] 1962166488968
#深拷贝
import copy
varlist1 = [1,2,['a','b','c']]
varlist2 = copy.deepcopy(varlist1)
del varlist2[2][2]
print(varlist1,id(varlist1[2])) # [1, 2, ['a', 'b', 'c']] 1725185913224
print(varlist2,id(varlist2[2])) # [1, 2, ['a', 'b']] 1725185915784

列表推导式

varlist = [i**2 for i in range(5)]
print(varlist) # [0, 1, 4, 9, 16]
varlist = [i for i in range(10) if i % 2 == 0]
print(varlist) # [0, 2, 4, 6, 8]

元组推导式

varlist = [1,2,3,4]
res = (i**2 for i in varlist)
print(res,type(res)) # <generator object <genexpr>> <class 'generator'>
print(next(res)) # 1
print(list(res)) # [4,9,16]

yield关键字

def fun():
print('一')
yield 1
print('二')
yield 2
print('三')
yield 3
print('四')
yield 4 res = fun()
print(res,type(res)) # <generator object fun> <class 'generator'>
print(next(res)) # 一\n 1\n
print(next(res)) # 二\n 2\n
print(list(res)) # 三\n 四\n [3,4]

字典的定义

vardict = {'a':1,'b':2}
print(vardict) # {'a': 1, 'b': 2}
vardict = dict([['a',1],['b',2]])
print(vardict) # {'a': 1, 'b': 2}
vardict1 = ['a','b']
vardict2 = [1,2]
print(dict(zip(vardict1,vardict2))) # {'a': 1, 'b': 2}

字典的基本操作

var1 = {'a':1,'b':2}
var2 = {'c':3,'d':4}
#print(var1 + var2) TypeError: unsupported operand type(s) for +: 'dict' and 'dict' 不能连接
#print(var1 * 2) TypeError: unsupported operand type(s) for *: 'dict' and 'int' 不能重复
print(var1['a']) # 1 取值
var1['a'] = 11 # 赋值
print(var1) # {'a': 11, 'b': 2}
var1['aa'] = 111 # 添加
print(var1) # {'a': 11, 'b': 2, 'aa': 111}
var1['aa'] = 222
print(var1) # {'a': 11, 'b': 2, 'aa': 222}
del var1['aa'] # 删除
print(var1) # {'a': 11, 'b': 2}
print('aa' in var1,'aa' not in var1) # False True 是否存在
print(var1.keys()) # dict_keys(['a', 'b']) 取出key
print(var1.values()) # dict_values([11, 2]) 取出值
print(var1.items()) # dict_items([('a', 11), ('b', 2)]) 取出key和值
for i in var1:
print(i,var1[i]) # a 11\n b 2
for k,v in var1.items():
print(k,v) # a 11\n b 2

字典的相关函数

vardict = {'a':1,'b':2,'c':3}
res = iter(vardict) # 转换成迭代器
print(res,type(res)) # <dict_keyiterator object> <class 'dict_keyiterator'>
res = vardict.pop('a') # 指定key弹出
print(res,vardict) # 1 {'b': 2, 'c': 3}
res = vardict.popitem() # 弹出最后一个
print(res,vardict) # ('c', 3) {'b': 2}
print(vardict.get('b'),vardict.get('c')) # 2 None 按key取值
#print(vardict['c']) KeyError: 'c'
res = vardict.get('c',3)
print(res,vardict) # 3 {'b': 2}
# 添加
vardict.update(b=22)
vardict.update({'a':1,'c':3})
print(vardict) # {'b': 22, 'a': 1, 'c': 3}
# 设置默认值
print(vardict.setdefault('b'),vardict) # 22 {'b': 22, 'a': 1, 'c': 3}
print(vardict.setdefault('d'),vardict) # None {'b': 22, 'a': 1, 'c': 3, 'd': None}
print(vardict.setdefault('e',4),vardict) # 4 {'b': 22, 'a': 1, 'c': 3, 'd': None, 'e': 4}

字典推导式

vardict = {'a':1,'b':2}
res = {v:k for k,v in vardict.items()}
print(res) # {1: 'a', 2: 'b'}

集合的基本操作

var = {1,2,3}
# 添加
var.add(4)
print(var) # {1,2,3,4}
var.update([3,5,6])
print(var) # {1,2,3,4,5,6}
# 删除
#var.pop() 随机删
var.remove(4)
print(var) # {1,2,3,5,6}
#var.remove('a') KeyError: 'a'
var.discard('a')
print(var) # {1,2,3,5,6}
# 拷贝
var2 = var.copy()
print(var2) # {1,2,3,5,6}
# 清空
var.clear()
print(var) # set()

冰冻集合

var = frozenset([1,2,3])
print(var,type(var)) # frozenset({1, 2, 3}) <class 'frozenset'>
# 推导式
var = frozenset({i<<2 for i in range(6)})
print(var) # frozenset({0, 16, 4, 20, 8, 12})
# 拷贝
var2 = var.copy()
print(var2) # frozenset({0, 16, 4, 20, 8, 12})
集合运算
var1 = {'a','b','1','2'}
var2 = {'1','2','c','d'}
# 交集
print(var1 & var2) # {'2', '1'}
print(var1.intersection(var2)) # {'2', '1'}
res = var1.intersection_update(var2)
print(res,var1) # None {'1', '2'}
# 并集
print(var1 | var2) # {'1', 'c', 'd', '2', 'a', 'b'}
print(var1.union(var2)) # {'1', 'c', 'd', '2', 'a', 'b'}
res = var1.update(var2)
print(res,var1) # None {'1', 'c', 'd', '2', 'a', 'b'}
# 差集
print(var1 - var2,var2 - var1) # {'b', 'a'} {'c', 'd'}
print(var1.difference(var2)) # {'b', 'a'}
res = var1.difference_update(var2)
print(res,var1) # None {'a', 'b'}
# 对称差集
print(var1 ^ var2) # {'d', 'c', 'a', 'b'}
print(var1.symmetric_difference(var2)) # {'d', 'c', 'a', 'b'}
res = var1.symmetric_difference_update(var2)
print(res,var1) # None {'d', 'c', 'b', 'a'}
# 超集、子集
var1 = {1,2,3,4,5,6}
var2 = {1,2,3,4}
print(var1.issuperset(var2),var2.issubset(var1)) # True True
# 是否不相交
print(var1.isdisjoint(var2)) # False

python学习记录(三)-数据类型的更多相关文章

  1. python学习第三次记录

    python学习第三次记录 python中常用的数据类型: 整数(int) ,字符串(str),布尔值(bool),列表(list),元组(tuple),字典(dict),集合(set). int.数 ...

  2. Python学习记录day5

    title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...

  3. Python 学习 第三天 课后总结:

    PYTHON学习第三天课后总结: 1,注释:就是对代码起到说明注解的作用.   注释分为单行注释与多行注释.  单行注释:只注释一行代码在需要注释的所在行的行首使用#号来注释此行,注意#与代码之间需要 ...

  4. Python学习记录:括号配对检测问题

    Python学习记录:括号配对检测问题 一.问题描述 在练习Python程序题的时候,我遇到了括号配对检测问题. 问题描述:提示用户输入一行字符串,其中可能包括小括号 (),请检查小括号是否配对正确, ...

  5. Python学习记录day8

    目录 Python学习记录day8 1. 静态方法 2. 类方法 3. 属性方法 4. 类的特殊成员方法 4.1 __doc__表示类的描述信息 4.2 __module__ 和 __class__ ...

  6. Python学习记录day7

    目录 Python学习记录day7 1. 面向过程 VS 面向对象 编程范式 2. 面向对象特性 3. 类的定义.构造函数和公有属性 4. 类的析构函数 5. 类的继承 6. 经典类vs新式类 7. ...

  7. Python学习(三) 八大排序算法的实现(下)

    本文Python实现了插入排序.基数排序.希尔排序.冒泡排序.高速排序.直接选择排序.堆排序.归并排序的后面四种. 上篇:Python学习(三) 八大排序算法的实现(上) 1.高速排序 描写叙述 通过 ...

  8. Python学习记录day6

    title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...

  9. JavaScript学习记录三

    title: JavaScript学习记录三 toc: true date: 2018-09-14 23:51:22 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...

  10. Python学习-第三天-面向对象编程基础

    Python学习-第三天-面向对象编程基础 类和对象 简单的说,类是对象的蓝图和模板,而对象是类的实例.这个解释虽然有点像用概念在解释概念,但是从这句话我们至少可以看出,类是抽象的概念,而对象是具体的 ...

随机推荐

  1. liunx部署flask项目

    如何在linux上部署flask项目 Python3.7 + virtualenv + uwsgi + git + mysql-5.6.45 + nginx 源码编译安装所需要的环境 yum inst ...

  2. Unity Shader实现《死亡搁浅》扫描效果!

    https://mp.weixin.qq.com/s/4YwjxScnU0zprjGekAyvsw

  3. Tomcat 配置文件详解之-- server.xml

    一.背景 Tomcat隶属于Apache基金会,是开源的轻量级Web应用服务器,使用非常广泛.server.xml是Tomcat中最重要的配置文件,server.xml的每一个元素都对应了Tomcat ...

  4. el-input 限制输入框只能输入数字和小数

    方法一: oninput ="value=value.replace(/[^\d]/g,'')" //只能输入数字 oninput ="value=value.repla ...

  5. Webservice或WebAPi Post类型传参,类对象格式转换

    有类: public class ImgInfo { public int fs { get; set; } public string FileName { get; set; } public s ...

  6. 整合mybatis-示例

    引入依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.o ...

  7. robots.txt详解[通俗易懂]

    大家好,又见面了,我是你们的朋友全栈君. 怎样查看robots文件? 浏览器输入 主域名/robots.txt robots.txt的作用 robots.txt 文件规定了搜索引擎抓取工具可以访问网站 ...

  8. 当FTP不能满足大文件、海量文件传输时,有没有好的替代方案?

    很多企业存在大文件.海量文件的传输需求,如涉及到图像数据采集和回传.海量用户数据收集和同步等业务,一般情况,企业还是会采用传统的FTP传输,或者以此为基础,使用脚本或结合其他办公工具来解决传输需求. ...

  9. 查看Linux系统的一些信息

    1.查看物理cpu个数 grep 'physical id' /proc/cpuinfo | sort -u | wc -l cat /proc/cpuinfo | grep "physic ...

  10. ORihard KCU116E: 经济实惠的 100Gbps 网络和存储 FPGA 开发平台

    ORihard KCU116E: 经济实惠的 100Gbps 网络和存储 FPGA 开发平台   ORihard KCU116E: 经济实惠的 100Gbps 网络和存储 FPGA 开发平台 Kint ...