python学习--day6(数据类型的补充以及深浅拷贝)
一.str类型
1.center(以什么为中心)
a='李白' b=a.center(20,'#') print(b)
2.count(计数功能,查看某个字符在字符串中出现了多少次)
a='hfsdjhfh' b=a.count('h') print(b)
3.encode(把字符串用某种编码的方式编译起来,得到的是一个字节类型)
a='李白' b=a.encode(encoding='utf-8') print(b)
4.endswith(以什么结尾),startswith(以什么开头)
a='gjdkjgkjskjgkjgjkdjgjei' b=a.endswith('k',0,7) print(b)
5.find和index(都是寻找字符串中某个字符,或者子序列的索引)
两个区别:find没找到不会报错,而index没找到会报错,两者都是只能找到第一个后就不会继续往后找
如果是一个子序列,则会显示子序列第一个字符的索引
a='hgdhgehdhudhfdgudfh' b=a.find('d') print(b)
6.format(类似于字符串格式化的作用,替换的内容是列表是前面有一个※,字典的时候有两个※号),format_map(专门用也字典中,使用它的时候前面不需要加※号)
a='jgf{1}kj{1}gj' #字符串中的大括号中数字是对应下面括号中的索引 b=a.format('a','q')#字符串格式化 print(b)
(2)列表时:
a='jd{0}gjj{1}sdgj' b=a.format(*['你','我']) print(b)
(3)字典的时:
a='jd{a}gjj{b}sdgj' b=a.format(**{'a':'你','b':'我'}) print(b)
7.format_map(字典中专用的格式化)
a='jgf{a}kj{b}gj' #字符串中的大括号中数字是对应括号中的字典中的键 b=a.format_map({'a':'d','b':'f'}) print(b)
8.casefold(把字母变成小写(包括英语和其他小语种),py3中才有的)
a='gjdAAAg' b=a.casefold() print(b)
9.expandtabs(把tab键的值显示出来,默认为8个字节)
a='id\tname\tsex\t\noldboy\txfm\tman\t' val=a.expandtabs() print(val)

10.isalnum(判断字符串中是否全部都是字母数字(包括中文))
name='alex1中文' b=name.isalnum() print(b)
11.isalpha(判断字符串中是否全部是字母(字母包括中文))
name='alex中文' val=name.isalpha() print(val)
12.isdecimal(),isdigit()和isnumeric()的区别,三者都是检测是否有数字,区别如下
isdecimal()中只能值十进制的数,例如:1,1,3
isdigit()中可以是十进制的数,还可以是:①②③
isnumeric()中包含上述两者,还包括:二十,三十等
a='123' b=a.isdecimal() print(b) a='123①②③' b=a.isdigit() print(b) a='123①一' b=a.isnumeric() print(b)
13.isidentifier(判断是不是Python中的标识符(检测是不是可以使用的变量名))
a='_jgd_jgj' b=a.isidentifier() print(b)
14.isprintable(是否可以被全部打印出来)(出现\t,\n等不可以被打印)
a='jgdjgj\t' b=a.isprintable() print(b)
15.ispace(是否全部是空格)
a=' ' b=a.isspace() print(b)
16.title()和istitle()
title():把字符串变成标题
istitle():判断是否是标题
a='i am xfm' b=a.title() c=a.istitle() print(b) print(c)
17.split()和partition()的区别
split(会把分割符去掉,且会分割所有的分割符(可以指定分割几个))
partition(会保留分割符,且只会分割第一个分割符)
a='i am xfm' b=a.title() c=a.istitle() print(b) print(c)
18.swapcase():把字符串中大写变小写,小写变大写
name='alEX' val=name.swapcase() print(val)
19.maketrans()和translate()
maketrans():创建一种对应关系
translate():把maketrans()创建的对应关系翻译出来
table=str.maketrans('aeiou','12345') mes='ajejgdjijgjojgju' val=mes.translate(table) print(val)

二.深浅拷贝
1.深拷贝是把所有层都拷贝了一遍
2.浅拷贝只把第一层拷贝了一遍
import copy li=[1,2,3,[11,[77,88],33],66] li2=copy.deepcopy(li) #深拷贝把每一层都拷贝了一遍,在后续对被拷贝的对象进行操作是,拷贝对象不发生变化 li3=li.copy() #拷贝的是第一层的内存地址,被拷贝的对象在后续的操作中,拷贝的对象可能会发生变化 li[3].append(99) li[3][1].append(100) print(li3) print(li2)
三.list
1.extend():扩展内容,括号内加一个可迭代对象,会把可迭代对象全部加到列表中
li=[11,22,33,33] li.extend('123') print(li)
2.insert():插入某个值,括号中填入索引位置,和要插入的值
li=[11,22,33] li.insert(1,33) print(li)
3.pop():括号内默认最后一个值取出,也可以填入索引进行取值
li=[11,22,33,44,55,66] v=li.pop() v2=li.pop(1) print(v) print(v2) print(li)

4.remove():括号内填的是具体要删除的内容,如果有重复的值,只会删除第一个
li=[11,22,33,66,55,66] li.remove(66) print(li)

5.reverse():反转,把值反过来输出
li=[11,22,33,44,55,66] li.reverse() print(li)
6.sort():排序(默认从小到大排序,也可重大到小排序,还可以写一个函数,按照函数的要求排序)
li=[1,3,2,6,8,5] li.sort() print(li) li.sort(reverse=True) print(li)

四.tuple
1.count()和index():用法和列表的相同
五.dict
1.字典中的键可以是数字,字符串,布尔值,元组(元组中不能存在可变数据类型)但是数字1和True以及数字0不能和Fasle值共存,字典中的键是唯一的
1.pop()和popitem()
pop():括号中填的是一个键,得到的结果是键所对应的值
popitem():括号内部填,得到的是一个元组,键和键值
dic={'k1':'v1','k2':'v2','k3':'v3'}
v1=dic.popitem()
v=dic.pop('k2')
print(v1)
print(v)
print(dic)

2.setdefault():往里面添加元素,如果里面存在相应的键,就不会添加
dic={'k1':'v1','k2':'v2','k3':'v3'}
dic.setdefault('k6','v6')
print(dic)
dic.setdefault('k2',111)
print(dic)

3.update():更新字典,如果字典中没有,则添加,如果有,则进行修改

浙公网安备 33010602011771号