1.数字类型int与float
1.1 类型转换
int()和float()加需要转换的内容
s=123
res = float(s)
print(res,type(res))
强调:他们主要是用在整型与浮点型之间的转换
2.字符串str
2.1相互转换
str可以把任意其他类型转换成字符串
2.2内置方法
2.2.1 按索引取值
msg = 'xiaohan is good boy'
正向取值
res1 = msg[0]
res2 = msg[1]
反向取值
res3 = msg[-1]
2.2.2 切片 (左包右不包,所谓的顾头顾不尾)
msg ='xiaohan is good boy'
res = msg[:]
res1 = msg[3:6]
res2 = msg[:5]
res3 = msg[3:]
带步长
res4 = msg[1:8:2]
res5 = msg[::2]
res6 = msg[::-1]
res7 = msg[10:4:-1]
2.2.3 长度len
获取字符串的长度,即字符的个数,但凡存在于引号内的都算作字符
2.2.4 成员运算 in 和 not in
str1 = 'xiaohan'
str2 = 'han'
str2 in str1
2.2.5 strip移除字符串首尾指定的字符(默认移除空格)
str1 = ' xiao han is good '
str1.strip()
需要掌握 strip, lstrip,rstrip
str = ' xiao han is good boy '
res1 = str.lstrip() #去除字符串左侧的空格
rstrip 去除右侧的空格
2.2.6 lower 和upper
一般情况下,带()的,如lower(),upper()都是带返回值的
str= ' han ge is good boy'
str.upper() 带返回值,将英文字母全部变成大写
str1 = 'HAN IS GOOD'
str1.lower() 带返回值,将英文全部变成小写
2.2.7 startswith和endswith判断字符串是否以xxx开关或结尾
res = 'han is good'
print(res.startswith('ha')
print(res.endswith('boy')
True
True
2.2.7 join
从可迭代对象中取出多个字符串,然后按照指定的分隔符拼接,拼接的结果为字符串
'%'.join('hello') #h%e%l%l%o
'|'.join(['han','19','read'])
2.2.8 replace
用新的字符替换字符串中旧的字符
str= 'han is 20 ,han good boy'
str.replace('han','hange') #替换指定的字符内容
str.replace('han','hange',2) #还可以指定替换的个数
2.2.9 isdigit
判断字符串是否由全数字组成,返回结果为True或False
str='s345343'
str.isdigit
3.列表
在[]内,用逗号分隔开多个任意数据类型的值
3.1 类型转换
list('han') #['h','a','n'] 字符串
list({'name':'han','age':20}) # ['name','age'] 得到的是key的值 字典
list((1,2,3)) #[1,2,3] 元组
list({1,2,3}) #[1,2,3] 集合
3.2 使用
3.2.1 切片
顾头不顾尾(同字符串)
正向取,反向取,步长,长度(len),成员运算(in, not in )
3.2.2 重点掌握的基本方法
append()列表尾部追加元素
l=['han',23,[1,'xiao']]
l.append('hello')
extend() 一次性在列表尾部添加多个元素
l.extend(['a','b','c']) ['han',23,[1,'xiao'],'a','b','c']
insert() 在指定位置插值
l.insert(1,'first') ['han','frist',23,[1,'xiao'],'a','b','c']
del删除指定元素
del l[0]
pop() 默认删除列表最后一个元素,并将删除的值返回,括号内可以通过加索引值来指定删除元素
l.pop()
l.pop('han')
remove() 指名道姓的要删除哪个元素,没有返回值
l.remove('han')
reverse() 颠倒列表内元素顺序
l.reverse()
sort() 组列表中的所有元素排序,排序时元素之间必须是相同数据类型,不可混搭
默认是从小到大排序
4.元组
在()内用逗号分隔开多个任意类型的值
4.1 类型转换
tuple('xiaohan')
4.2 使用
4.2.1 按索引取值(正向取,反向取):只能取,不能改,否则报错
tuple1=(1,'xiaohan',10.0)
tuple[1]
tuple[-2]
4.2.2 切片(顾头不顾尾,步长)
tuple1[0:6:2]
4.2.3 长度(len)
len(tuple1)
4.2.4 成员运算 in和not in
'haha' not in tuple1
4.2.5 循环
for line in tuple1:
print(line)
5.字典 set
在{}内用逗号分隔开多个元素,每一个元素都是key:vaule的形式,其中value可以是任意类型,而key则必须是不可变类型,通常key应该是str类型,因为str类型会对value有描述性的功能
info={'name':'xiaohan','age':20}
5.1类型转换
info = dict([['name','han'],('age',19)]
print(info)
fromkeys会从元组中取出每个值做key,然后与None组成key:value放到字典中
{}.fromkeys(('name','age','sex'),None)
5.2 取值
dict={'name':'han','age':19,'sex':'gender','hobbies':['paly game','basketball'}
dict['name'] 'han'
dict['hobbies'][1] 'basketball'
对于赋值操作,如果key原来不存在于字典中,则会新增key:vaule
如果key原先存在于字典中,则会修改对应的value值
5.3 长度len
len(dict)
5.4 成员运算 in 和 not in
'name' in dic 判断某个值是否是字典的key
5.5删除 pop
dic.pop('name') 通过指定字典中的key来删除字典中的键值对
5.6 键keys(),值values(),键值对items()
5.7 循环
默认遍历的是字典的key
for k in dic:
print(key)
若只遍历key
for k in dic.keys():
print(key)
只遍历value
for key i dic.values():
print(key)
遍历key与value
for key in dic.items():
print(key)
5.8需要掌握的操作
5.8.1 get()
dic ={'name':'han','age':20,'sex':'man'}
dic.get('name') #取出key对应的value值 若key不存在,不会报错,而是默认返回None
可以设置默认返回值
dic.get('xxx',666) 不存在则返回666
5.8.2 pop()
删除指定的key对应的键值对,并返回值
v=dict.pop('name')
5.8.3 popitem()
随机删除一组键值对,并将删除的键值放到元组内返回
item1 = dict.popitem()
5.8.4 update()
用新的字典更新旧字典,有则修改,无则添加
dic={'name':'han','age':20,'sex':'man'}
dic.update('hobies':'play')
6. 集合 set
集合,list,tuple,dict一样都可以存多个值,但是集合主要用于:去重,关系运算
6.1 定义
三个特点:1.每个元素必须是不可变类型 2.集合内没有重复的元素 3.集合内元素无序
d={} 默认是空字典
s=set() 这才是定义空集合
6.2 类型转换
但凡能被for循环的遍历的数据类型(遍历的每一个值都必须为不可变类型)都可以传给set()转换成集合类型
set({'name':'han'}) {'name'}
set('han') {'h','a','n'}
6.3 关系运算
6.3.1 合集/并集 (|) 两个集合中所有的元素(重复的只留一个)
6.3.2 交集(&) 两个集合的共同元素
6.3.3 差集 (-) 有顺序之分 (一个集合减掉另一个中他有的元素)
6.3.4 对称差集(^) 两个集合独有的元素(即去掉共有的元素)
6.3.5 相等(==)
6.3.6 父集,子集
6.3 去重
只能针对不可变类型;集合本身是无序的,去重之后无法保留原来的顺序
l=['a','b',1,'a','c']
s=set(l)
l_new = list(s)
7.可变类型与不可变类型
可变类型:值发生改变时,内存地址不变,即id不变 不可变类型:值发生改变时,内存地址也发生改变,即id也变。
不可变类型:数字类型,字符串,元组 可变类型:列表,字典,