Python 从入门到精通 第四天
今日目标
数据类型-又见str、数据类型-又见list
列表切片&排序&反转&循环、字典
数据类型 - 又见str
字符串定义
字符串是一个有序的字符的集合,用于在计算机里存储和表示文本信息
创建
a = "Hello ,my name is Haoxintai."
字符串特性
按照从左到右的顺序定义字符集合,下标从0开始顺序访问。
# 可以进行切片操作,即顾头不顾尾
a[3:6]# 从第三位到第五位lo,
a[1:5]# 从第一位到第四位ello
不可变。
字符串是不可变的,不能像列表一样修改其中某个元素。
所有对字符串的操作修改其实都是相当于生成了一份新数据。
字符串常用操作
center(self,width,fillchar=None) # 在字符串两边补充填充物
count (self,sub,start=None,end=None)# 查询某个字符在字符串中出现的次数 start end 为取值范围
encode(self,encoding='utf-8',errors='strict')
endswith(self,suffix,start=None,end=None)# 判断字符是不是以某个字符结尾 返回True或False
find(self,sub,start=None,end=None)# 查找,返回-1代表没找到,如果找到就返回其索引
isdigit(self)# 判断是不是一个数字
strip(self,chars=None)# 去除多余的空格
replace(self,old,new,count=None)# 替换,count为替换的次数
split(self,seq=None,maxsplit=-1)# 把一个字符串变成列表,默认以空格划分
startswith(self,prefix,start=None,end=None)# 判断字符是不是以某个字符开始
数据类型 - 又见list
定义
[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素
列表的特点
①可以存放多个值
②按照从左到右的顺序定义列表元素,下标从0开始顺序访问,有序
③可修改指定索引位置对应的值,可变
列表的增加操作
# 追加,数据会追加到尾部
names['haoxintai','qingfeng']
names.append("damahou")
names.append("laoliu")
names['haoxintai','qingfeng','damahou','laoliu']# 插入,可插入任何位置
names.insert(2,"黑姑娘")
names['haoxintai','qingfeng','黑姑娘','damahou','laoliu']# 合并,可以把另一外列表的值合并进来
n2 = ["狗蛋","绿毛","鸡头"]
names=['haoxintai','qingfeng','黑姑娘','damahou','laoliu']
names.extend(n2)
names['haoxintai','qingfeng','黑姑娘','damahou','laoliu','狗蛋','绿毛','鸡头']# 列表嵌套
name.insert(2,[1,2,3])
names['haoxintai','qingfeng',[1,2,3],'黑姑娘','damahou','laoliu','狗蛋','绿毛','鸡头']
names[2][1] 2
删除操作
del 直接删
names
['haoxintai','qingfeng',[1,2,3],'黑姑娘','damahou','laoliu','狗蛋','绿毛','鸡头']
del names[2]
names
['haoxintai','qingfeng','黑姑娘','damahou','laoliu','狗蛋','绿毛','鸡头']
pop删除
names
['haoxintai','qingfeng','黑姑娘','damahou','laoliu','狗蛋','绿毛','鸡头']
names.pop() #默认删除最后一个元素并返回被删除的值'鸡头'
names
['haoxintai','qingfeng','黑姑娘','damahou','laoliu','狗蛋','绿毛']
names.pop(1) # 删除指定元素
'qingfeng'
remove删除
names
['haoxintai','qingfeng','黑姑娘','damahou','laoliu','狗蛋','绿毛','鸡头','laoliu']
names.remove("laoliu")# 删除第一个找到的laoliu值
names
['haoxintai','qingfeng','黑姑娘','damahou','狗蛋','绿毛','鸡头','laoliu']
clear清空
n2
["狗蛋","绿毛","鸡头"]
n2.clear()
n2
[]
修改操作
names
['haoxintai','qingfeng','黑姑娘','damahou','laoliu','狗蛋','绿毛']
names[0] = "我叫好心态"
names[-1]="你叫好心态"
names
['我叫好心态','qingfeng','黑姑娘','damahou','laoliu','狗蛋','你叫好心态']
查操作
names
['haoxintai','qingfeng','黑姑娘','damahou','laoliu','狗蛋','绿毛','鸡头','laoliu']
names.index("laoliu")# 返回从左开始匹配到的第一个laoliu的索引
3names.count("laoliu")# 返回laoliu的个数
2item in list
'qingfeng' in names
#在不知道一个元素在列表哪个位置的情况下,如何修改:
#先判断在不在列表里,item in list
#取索引,item_index = names.index("qingfeng")
#去修改,names[item_index] = "wanfeng"
列表切片&排序&反转&循环
切片
正常切片
切片就像切面包,可以同时取出元素的多个值
names[start : end]
names
['haoxintai','qingfeng','黑姑娘','damahou','laoliu','狗蛋','绿毛','鸡头','laoliu']
names[1:4]# 不包含下标4的元素
['qingfeng','黑姑娘','damahou']
注意:切片的特性是顾头不顾尾,即start的元素会被包含,end-1是实际取出来的值
倒着切
names[-5:-1]
['laoliu','狗蛋','绿毛','鸡头']
names[-5:]
['laoliu','狗蛋','绿毛','鸡头','laoliu']
步长(跳着切)
names[start:end:step] #step 默认是1
a
[0,1,2,3,4,5,6,7,8,9]
a[0:7:2]
[0,2,4,6]
排序&反转&循环
排序
a = [83,4,2,4,6,19,33,21]
a.sort()
a
[2,4,4,6,19,21,33,83]
反转
names
['#','4','@','laoliu','damahou','qingfeng','haoxintai']
names.reverse()
names
['haoxintai','qingfeng','damahou','laoliu','@','4','#']
循环
for i in names:print(i)
haoxintai
qingfeng
damahou
laoliu
@
4
#
for i in enumerate(names):print(i)
(0,'haoxintai')# 元组
(1,'qingfeng')
(2,'damahou')
(3,'laoliu')
(4,'@')
(5,'4')
(6,'#')
字典
{key1:value1,key2:value2}
infor = {"name":"haoxintai","age":27
}key -> value
特性
1.key-value结构
2.key必须为不可变数据类型(字符串、数字)、必须唯一
3.可存放任意多个value、可修改、可以不唯一
4.无序
5.查询速度快,且不受dict的大小影响。
取值:print(infor[“name”])
增加操作
mes ={"haoxintai":[ 23,"CEO",66000 ],"黑姑娘":[ 24,"行政",4000],
}
#新增k
names["佩奇"]=[ 26,"讲师",40000 ]
删除操作
names.pop("haoxintai")#删除指定key
del names ["haoxintai"]#删除指定key,同pop方法
names.clear ( )
#清空dict
修改操作
dic['key'] = 'new_value'# 如果key在字典中存在, 'new_value'将会替代原来的value值;
查操作
dic['key']#返回字典中key对应的值,若key不存在字典中,则报错;
dic.get(key,default = None)#返回字典中key对应的值,若key不存在字典中,则返回default的值(default默认为None)
'key' in dic#若存在则返回True,没有则返回False
dic.keys()#返回一个包含字典所有KEY的列表;
dic.values()#返回一个包含字典所有value的列表;
dic.items()#返回一个包含所有(键,值)元组的列表;
循环
for k in dic.keys ()
for k,v in dic.items ()
for k in dic#推荐用这种,效率速度最快
info = {"name" :"好心态","mission":"123","website":"https://haoxintai.com"
}
for k in info:
print (k,info[k])
求长度
len(dic)