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():更新字典,如果字典中没有,则添加,如果有,则进行修改

 

posted @ 2017-08-27 21:48  明-少  阅读(79)  评论(0)    收藏  举报