5-21python数据类型
一、字符串,是不可变数据类型,所有字符串的方法都不会修改字符串的值,使用字符串的方法后都是生成了一个新的字符串。就因为字符串是不可变变量!
字符串的方法
1、 strip(),默认去空格,但是当()中有某个字符串的话,意思就是去掉前面字符串中的某个字符串
例如:字符串名字xx.strip()
print('lalahi zhangyizhoulala'.strip('lala'))
但是要注意这个方法只是去掉字符串两头的指定东西,如果字符串中间有指定的lala时则不会生效
2、None,代表空,什么都没有,但不是空字符串
3、in,代表xx在A里
例如:
name = 'chuandan beizhao sijiantao'
print('sijiantao' in name)
返回结果是布尔值t或f
4、is,判断是否是同一块内存地址
例如:
a1 = ['a','b','c']
a2 = ['a','b','c']
print(id(a1))
print(id(a2))
print(a1 is a2)
返回结果是布尔值t或f
5、 字符串的下标
通过字符串的下标取其第几位的值
如:
print(name[3])
6、是否以x结尾,例如
name = 'hello zhangyizhou'
print(name.endswith('h'))
返回false
7,find()查找字符串的索引,例如
name = 'hi zhangyizhou'
print(name.find('y',2,10))
返回位置的数字,如果返回-1代表没找到
2和10代表开始查找的位置和结束的位置,可以都不写,也可以只写开始的位置
8、isdigit()字符串是否是数字,例如
name = 'hi zhangyizhou'
print(name.isdigit())
返回布尔值
9、将字符串中变成大/小写,变成大写upper(),变成小写lower(),例如
name = 'hi zhangyiZHou'
print(name.lower()) 变成小写
print(name.upper()) 变成大写
10、join()拼接字符串,join后面必须是可迭代的对象,比如字符串或者列表之类的,例如
name = ['hi','zhangyiZHou']
print('用这个连接'.join(name))
join前面想写啥写啥,意思是用‘用这个连接’这几个字将前面的东西和name里的东西拼成一个字符串,也可以写星号之类的。如果以上例子当中name的类型是字符串的话,运行的结果是连接符+hi,连接符+zhangyizhou
11、替换字符串replace()
例如:print('zhangyizhou is mm,zhangyizhou is nvde,zhangyizhou loveu'.replace('zhangyizhou','tihuandiao')),3个zhangyizhou都被替换成tihuandiao了
在要替换的字符串后面也可以加数字,代表着要替换几次
例如:
print('zhangyizhou is mm,zhangyizhou is nvde,zhangyizhou loveu'.replace('zhangyizhou','tihuandiao',1)),只替换第一个zhangyizhou
12、分割字符串,分割后返回一个列表,例如
char = 'zyz&yiso&zhrrt&namr2'
print(char.split('&'))
将char以&这个符号分割成一个新的列表
字符串必须会的方法
大小写字母+数字,随机生成验证码
Find,查找字符串
Format() 格式化字符串
Isalnum() 是否包含数字和字母
Isdigit() 是否是数字
Lower() 变成小写字母
Upper()变成大写字母
Join() 拼接字符串
Strip() 去空格,istrip() rstrip()去左边空格和去右边空格
Replace()替换字符串中的指定字符串
Split()分隔字符串
二、列表
1、列表中增加元素
方法append,insert
append是在列表的末尾增加
insert是在指定位置增加
例如:
name = ['name1','name2','name3']
name.append('zhangyihzou')
print(name)
name.insert(1,'yiso')
print(name)
2、列表的删除
方法pop(),不指定元素的时候删除列表最后一个元素,且该方法能够返回被删除的值
例如:
name = ['name1','name2','name3']
name.insert(1,'yiso')
name.pop()
print(name)
返回通过pop删除的值
例如:
name = ['name1','name2','name3']
name.insert(1,'yiso')
name.pop()
print(name)
print('pop删的是:',name.pop())
方法pop(n),指定元素的x下标删除列表中指定位置的元素
例如:
name = ['name1','name2','name3']
name.insert(1,'yiso')
name.pop(1)
print(name)
方法clear(),清空列表
例如:
name = ['name1','name2','name3']
print('before的值:',name)
name.clear()
print('after的值:',name)
方法del[n],指定元素的x下标删除列表中指定位置的元素,且指定的下标必须存在,也可以用del方法删除整个列表,如del name
例如:
name = ['name1','name2','name3']
del name[1]
print(name)
方法remove(),删除列表中某个值,括号中必须写要删除元素的值,而不是下标,不会返回删除的值
例如:
name = ['name1','name2','name3']
name.remove ('name1')
print(name)
3、列表中修改元素
name[n] = xxx,为修改列表中某元素的值。也可以直接给列表重新负值,即 name = ['值1',‘值2’,‘...’]
例如:
name = ['name1','name2','name3']
name[2] = 'lalala'
print(name)
注意:如果找不到列表中的下标,对其进行修改值,会报错
例如:
name = ['name1','name2','name3']
name[9] = 'lalala'
print(name)
4、列表的查询
A in B,in方法
例如:
list = [1,2,3,'zhangyizhou']
print('zhangyizhou' in list)
列表名[-1],-1是取列表中最后一个元素。同理,-2代表倒数第二个元素,-3代表第三个元素
例如:
list = [1,2,3,'zhangyizhou']
print(list[-1])
index(元素值)方法,意思是查询某个元素的下标,如果这个值在列表中不存在,报错
例如:
list = [1,2,3,'zhangyizhou']
print(list.index(1))
index方法中也可以从指定位置开始找,index(元素值,m,n) m代表查找的开始位置,n代表查找的结束位置,结束的位置可以不写,意思就是查找到列表最后
例如:
list = [1,2,3,'zhangyizhou']
print(list.index('zhangyizhou',3,3))
5、列表的运算
+
list a +list b,意思是列表a元素和b元素相加后组成一个新的列表,新列表中的元素顺序按照a和b的顺序显示。但a和b中的值没有变化
例如:
list1 = ['zhangyizhou','yiso',1,33,600]
list2 = [25,68,'mengmengzhou','hahaha12']
print(list1 + list2)
a.extend(b),意思是把b的值扩展到a中,b的值不变,但是a的值是a+b后的值,顺序是a+b。
例如:
list1 = ['zhangyizhou','yiso',1,33,600]
list2 = [25,68,'mengmengzhou','hahaha12']
list1.extend(list2)
print(list1)
a.append(b),意思是把b这个整体加在a的末尾,注意这时结果会是一个二维数组,因为b在结果中是一个整体
例如:
a = ['a',3,'zhangyizhou',68]
b = [1,2,5,7]
print(a)
print(b)
6、列表的排序,默认是升序排序
sort()方法,将列表中的元素升序排序, 需要注意的是,用到排序方法,列表中的值必须是同一种类型的数据
例如:
list = [1,34,5,94,45,555,976]
list.sort()
print(list)
sort(reverse = True)方法,将列表中的元素降序排序
例如:
list = [1,34,5,94,45,555,976]
list.sort(reverse = True)
print(list)
三、切片,对字符串和字典均可操作
切片:从列表和字符串里取几个元素
List[m:n],意思是取第m位到第n位的元素
例如:
list = ['zhangyizhou','yiso','youxin']
print(list[1:3])
注意,如果从第一位开始取的话冒号前可以不写,渠道最后的话冒号后可以不写,如果都不写只写冒号的话就是从头取到尾
字符串的写法同上,注意取值都是顾头不顾尾
四、步长
步长:从列表和字符串里隔几个取一个元素
例如:
num = list(range(1,21))
print(num[0:11:3])
意思是从第0个到第11个隔3个元素取一次值
以上输出的是:[1, 4, 7, 10]
如果步长为负数的话,意思是从最后一个往前取值,相当于倒序排序
例如:
num = list(range(1,21))
print(num[::-1])
以上输出的是:[20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
如果步长是-2的话意思是从末尾开始取,隔两个取一次
五、元组
元祖:不可变的列表list。更多时候用在操作数据库读数据库时使用。
元组用小括号定义,如tuple()
元组只有两个方法,count()和index()。统计元组中重复元素出现的次数,和索引读下标
例如:
tuple = (0,1,2,3,2,5,6,7,8,2,2)
print(tuple)
print(tuple.count(2))
统计2在tuple中出现的次数
例如:
tuple = (0,1,2,3,2,4,6,7,8,2,2)
print(tuple.index(4))
以上例子是返回元组中数值是4的元素的下标
六、字典
字典:用大括号{}表示。Key value的形式在大括号里。但是key在字典里不能重复的,是唯一的。
1、字典取值的方法,通过key取值
例如:
zidian = {
'name':'zhangyizhou',
'sex':'man',
'age':'17',
'grade':'one'
}
print(zidian['grade'])
另一种取值的方法get()
例如:
zidian = {
'name':'zhangyizhou',
'sex':'man',
'age':'17',
'grade':'one'
}
print(zidian.get('sex'))
以上两个方法的区别是get获取不到Key的时候不会报错返回是none
print(zidian.get('haha','没找到你要的'))
以上例子中没找到你要的这个参数,代表是当get不到Key时返回的东西,如果不写该参数的话返回none
2、字典增加的方法
用中括号
例如
zidian = {
'name':'zhangyizhou',
'sex':'man',
'age':'17',
'grade':'one'
}
zidian['addr'] = '朝阳区青年路'
另一种增加的方法setdefault(‘key’,’值’)
例如:
zidian = {
'name':'zhangyizhou',
'sex':'man',
'age':'17',
'grade':'one'
}
zidian.setdefault('addr','甜水园麦当劳')
print(zidian
)
3、字典修改的方法:
用中括号
同新增的中括号:zidian['like'] = 'music'
4、字典删除的方法
del(key)
例如:del zidian[‘addr’]
pop(),字典是无序的,所以Pop方法必须传一个指定的key,而且指定删除的这个key必须存在,否则报错
例如:pop(‘sex’)
Clear(),直接清空字典
例如:
zidian.clear()
Popitem(),意思是随机删除一个元素
例如:zidian.popiten()
以上返回的是:{}
5、字典的内置方法:
all.keys() 返回字典的所有key 例如:print(all.keys(zidian))
all.values()返回字典所有的value 例如:print(all.values(zidian))
all.items() 返回字典所有的key 和value,循环字典的时候用
6、字典的合并,将两个字典合并在一起
例如:
zidian1 = {
'name':'zhangyizhou',
'sex':'man',
'age':'17',
'grade':'one'
}
zidian2 = {
'xing':'yiso',
'nianji':'san',
'pohone':'13311221345',
}
zidian1.update(zidian2)
print(zidian1)
注意,如果要合并的两个字典中有相同的key,那么该方法执行后会更新key的value
7、判断是否在字典中存在的方法,in
例如:name in zidian1
返回的是布尔值