2 字符串&列表&元祖&集合&字典&浅拷贝和深拷贝(针对可变对象)
其他
2018-11-26 13:12:02
阅读次数: 0
- String'',反斜杠\代表部分符号的本意,也用于特殊字符,如换行符等
- *字符串对象调用函数可赋值给其他对象
- 切片:截取字符串,字符串变量[起始:结束:步长],包含起始值不包含结束值,步长默认为1,第一个字符的下标为0,负数则为倒数,倒数从-1开始;下标即索引
- a[::-1]倒序输出字符串
- 连接字符串,必须是相同格式的字符串才能运算
- +表示连接字符串
- *表示复制字符串
- 其他注意:
- 逗号在打印的时候表示空格
- r用在字符串左边,表示对转义字符取消转义作用
- \n换行
- 输入与输出
- print(values,sep,end,file,flush)
- values可以是任何多个无名参数,各个值之间用,相隔开,打印出来是空格隔开
- sep输入多个打印的值时,各个值之间分割方式
- end='\n',默认换行
- file=sys.stdout设置输出设备,及把print中的值打印到什么地方
- flush=F默认不刷新,当文件对象关闭时才将内容输出到txt文件中;T时,将立刻传到txt中
- 输出的格式化操作符:%[(name)][flags][width].[precision]typecode
- (name):字典参数,和()是一个整体,同时出现
- print('i am a %(key)s'%{key:value,key1:value1})
- flag
- +正数之前显示'+'
- -左对齐
- 0数字之前用0填充
- %转义出普通的%
- width显示宽度
- precision小数点后的精度
- typecode
- %[n]d正数,占用n个字符
- %[n].2f浮点数,设定精确到两位小数
- %s字符串或数值
- %e科学计数法
- 字符串外%{key:value}
- input()输入,能够从用户这里获取输入数据,将获取的数据赋值给相应的变量,一律以字符串的形式保存
- 字符串常用函数:字符串变量.函数()
- *切片:字符串变量[起始:结束:步长];下标即索引,从0开始
- find检测字符串是否包含指定字符,如果是返回初始的索引值,否则返回-1
- index检测字符串是否包含指定字符,如果是返回初始的索引值,否则提示错误
- count返回str1在string中指定索引范围内[start, end)出现的次数
- replace将str1中的str1替换成str2,如果指定count,则不超过count次
- split如果maxsplit有指定值,则仅分割 maxsplit 个子字符串,返回字符串列表
- capitalize将字符串的首字母大写
- title将字符串中每个单词的首字母大写
- startswith/endwith检查字符串是否是以 obj 开头/结尾, 是则返回 True,否则返回 False
- lower/upper将字符串转换为小写/大写
- ljust(width,'fillchar')/rjust/center(width,'fillchar')返回一个原字符串左/右对齐/居中,并使用空格填充至长度 width 的新字符串
- lstrip/rstrip/strip去除字符串左边/右边/两边空白字符
- partition可以将字符串以第一个出现的str1进行分隔成三个部分,[str1前,str1,str1后
- join有序对象中每个元素(字符)后面插入str1,构造出一个新的字符串
- isspace如果 str1 中只包含空格,则返回 True,否则返回 False
- isalnum如果 str1 所有字符都是字母或数字则返回 True,否则返回 False
- isdigit如果 str1 只包含数字则返回 True 否则返回 False,小数点被认为字符
- isalpha如果 str1 所有字符都是字母 则返回 True,否则返回 False
- list[]列表
- *列表是可变对象,调用函数会修改原对象,并且优先修改原对象而不会赋值给其他对象
- 元素之间用,隔开,元素的类型不一定要相同
- 列表可以被索引或切片,下标从0开始
- 列表可以用'+'拼接操作
- 列表中的元素是可变有序的
- 列表中嵌套列表时,列表[第一个列表的下标][第二个列表的下标],这样取数,并不代表数组
- 访问列表:列表可以被索引或切片,下标从0开始
- 操作列表:会影响原对象
- 修改:list[x]='...'
- 添加
- 列表末尾添加元素list.append('')
- 列表中任意位置添加元素list.insert(索引index,'')
- 删除
- 删除最后一个元素并返回删除值list.pop(index)
- 删除元素del list[index]
- 删除指定元素值list.remove(元素)
- 查找:在与不在,T or F
- 元素 in list
- 元素 not in list
- 列表相关函数:function(list)操作对象;list.fun()列表函数
- len(list)返回列表元素个数,有序对象都可操作
- max(list)返回列表元素中的最大值。默认数值型的参数,取最大值。默认字符型的参数,取字母排序靠后者
- min(list)返回列表元素中的最小值。默认数值型的参数,取最小值。默认字符型的参数,取字母排序靠前者
- list.count(obj)统计某个元素在列表中出现的次数
- extends(list)扩展列表,在一个列表的末尾一次性追加一个新的列表,参数为一个列表
- list.index(obj)用于从列表中找出某一个值第一个匹配项的索引位置
- list.reverse()反向列表中的元素
- list.sort(reverse=T)对列表进行排序,该方法没有返回值。更改的是原数组,=T则从大到小
- list.clear()用于清空列表
- list.copy()复制列表
- tuple()元祖
- 用,分隔
- tuple的元素不可变有序,但可以包含可变的元素,如列表
- 构造包含0个或者1个元素的tuple有特殊语法;tuple的输出也是带括号的
- tuple=()
- tuple=(1,),一个元素必须加上",",不然会返回数值或字符串
- 元祖可以被索引或切片,tuple[index]
- 元祖的操作
- 删除元祖:元祖中的元素值是不允许被单独修改和删除的,但是可以del tuple
- 间接删除:list(tuple)->tuple(list),元祖转化为列表修改后,再转回来
- 强制类型转换函数:list();tuple();int();str();dict()
- 多维元祖:多维元祖就是元祖中的元祖,元祖中的元素可以是一个新的元祖tuple[][]
- 多维元祖,如果元素是列表等可变对象,可以直接修改
- sets{}集合:确定性,互异性,无序性
- dictionary{}字典
- 映射类型,无序的键key:值value对集合
- 不能索引或切片
- 键值对用,隔开
- 键必须是不可变类型,且键必须是唯一的;值则无要求
- 对象,都可以是变量
- 不可变:数值,字符串,元祖
- 可变:列表,字典
- 可变有序:列表list[]
- 不可变有序:元祖tuple()
- 可变无序:dictionary{},sets{}
- 字典操作
- *所有对象类型都用[]来定位
- 访问字典dict[key]
- 添加元素dict[new_key]=new_value
- 修改字典dict[key]=value
- 删除字典del dict[key]/del dict,删除一个元素或全部删除
- 清空字典dict.clear()
- 字典函数
- len(dict)计算字典中元素的个数
- str(dict)输出字典,以可打印的字符串表示
- type(variable)返回输入变量的数据类型,如果变量是字典就返回<class ‘dict’>
- dict.fromkeys(seq[,value])创建一个新字典,以序列(列表或元祖)seq中元素做字典的键,value为字典所有键对应的初始值
- dict.get(key,default=None)返回指定键的值,如果值不在字典中返回default值
- dict.setdefault(key,default=None)和get类似,键存在则返回值,但如果键不存在于字典中,将会添加键并将值设为default
- key in dict如果键在字典dict里返回true,否则返回false
- dict.keys()以列表返回一个字典所有的键
- dict.values()以列表返回一个字典中的所有值
- 浅拷贝
- 方法
- copy.copy():copy模块的copy方法
- list.copy():列表对象的copy方法
- list[:]:列表起始到结束的切片
- list(list):强制类型转换对象的类型
- 可变对象里面的子对象是不可变对象时,修改子对象不会影响原对象;子对象是可变对象时,修改子对象会影响原对象和其他浅拷贝对象
- 深拷贝
- 方法
- copy.deepcopy():copy模块的deepcopy方法
- 不管你的子对象是可变还是不可变对象,都不会影响原对象
- 特点:修改的是对象的元素
- 可变对象:修改对象(是方法等)是在原对象的基础上进行修改,没有返回值
- 不可变对象:修改对象是不会影响原对象,有返回值
- 可变对象的直接赋值:相当于双胞胎,几乎一致,任何修改都相互影响
- 列表
- 增
- list.append()列表末尾添加元素
- list.insert(index,'')列表中任意位置添加元素
- list.extend()列表的末尾一次性追加一个新的列表
- 删
- list.remove(value)删除指定元素值
- list.pop()删除最后一个元素并返回删除值,即弹出
- list.clear()清空列表
- del list[index]删除元素
- 改
- list[index]=''
- 查
- list[index]
- list.index(元素)返回元素索引
- 元祖:无法直接增删改查,可以转换成列表进行增删改查
- 字典:
- 增
- dict[new_key]=new_value添加元素
- dict.setdefault(key,default=None)和get类似,键存在则返回值,但如果键不存在于字典中,将会添加键并将值设为default
- dict.update(dict1)将字典对象添加到dict中
- 删
- del dict[key]/del dict,删除一个元素/全部删除
- dict.clear()清空字典
- dict.pop(key,default=None)至少需要1个变量,没有则报错,因为是无序的不能弹出最后一个,根据key删除键,没有则default(default必须有)
- dict.popitem()随意删除1个key:value
- 改
- dict[key]=value修改字典
- 查
- dict[key]查看值
- dict.keys()
- dict.values()
- dict.item()遍历key:value
- dict.get(key,default=None)返回指定键的值,如果值不在字典中返回default值
- 内置函数:dir(__builtins__)查询
- 数学运算
- abs
- divmod返回两个数值的商和余数组成的元祖
- max返回可迭代对象中的最大值
- min
- pow前两个参数是幂运算值,第三个参数取模运算
- round
- sum对元素类型是数值的可迭代对象中的每个元素进行求和,sum(list)
- 类型转换
- bool根据你所传入的参数的逻辑值进行判断,返回True或者False;有元素存在即T,没有为F
- int不识别字符串
- float识别字符串
- complex
- str
- bin将整数转换成2进制字符串
- oct将整数转换成8进制字符串
- hex将整数转换成16进制字符串
- tuple将传入的参数转换成元祖
- list
- dict
- enumerate根据可迭代对象创建枚举对象,具体为list(enumerate(list))=[(0,list_element_1),(1,list_element_2)]
- range根据所传入的参数创建一个新的range对象,range(start,end,step),左闭右开,一般配合list(range())
- 一个数字x代表从0开始的x个元素的序列
- slice返回的是切片对象,一般配合为list(range()[slice()]),slice(start,end,step)左闭右开
- 序列操作:
- all判断可迭代对象的每个元素是否都为True,list中的0即为F,空list和空tuple为T
- any判断可迭代对象里面的元素是否有True值的元素,空list和空tuple为F
- filer
- map
- next
- reversed反转序列生成新的可迭代对象,list(reversed(range()))
- sorted默认从小到大排序,sorted(list,reverse=F)
- zip将传入的两个序列位置元素一一对应,返回一个新的迭代对象;只返回能对应的映射,不会循环,取较少的序列的元素个数
- 对象操作:
- help返回对象的帮助信息,help(list)
- dir返回当前作用域的属性列表,包含对象的方法
- id返回对象的唯一标志,在浅拷贝中出现的概念,可变对象指向某个id
- type
- len
- format
- vars返回当前作用域方法或者属性与值组成的字典,或者属性列表,var(list)
- 交互操作:
- print
- input
- 编译执行:
- eval执行字符串类型表达式的值,print(eval()),eval有返回值
- exec直接执行复杂的python代码,exec(''),exec没有返回值
-
-
-
- ee=input('请输入你要计算的求和式子:'),ee截取输入,转化为string
- print(eval(ee))直接输出求和结果
转载自blog.csdn.net/u013103305/article/details/83338655