python中的数据结构
2021-03-07 08:30
标签:包含 重复 双引号 操作 代码 split cap xtend 直接 一、索引 索引在公司中一般叫做下标或角标 1、我们可以通过索引位读取序列中的指定元素,索引可以分为正向索引和负向索引 2、索引的表达方式:str[x]其中x是需要我们自己填写的一个数据。 如,str[1]、str[0] 3、索引中,正向索引从0开始,负向索引从-1开始 4、表示不隔位 [起始索引位:结束索引位:步长值] 切片语法中:(1)包含起始不包含结束 (2)隔位不能为0,可以为1,从2开始有效果 5、range(遍历函数) (起始位:结束位:隔位) print(list(range(1,10,3))) 打印结果为[1,4,7] 遍历函数中:包含起始不包含结束,隔位不能为0,可以为1 print(list(range(10))) 打印结果为:[0,1,2,3,4,5,6,7,8,9] print(list(range(2,10))) 打印结果为:[2,3,4,5,6,7,8,9] print(list(range(2,10,3))) 二、切片 1、切片表达式:str:[start_index:end_index:step] 开始索引:结束索引:步长值 2、解释:start_index:开始索引(可以取值) end_index :结束索引(不能取值) step:步长值(脚跨几个楼梯) 3、注意 (1)切片中,如果步长不写默认为1 (2)切片取值从索引开始到索引结束,结果不包括索引结束位置的值(取到索引结束前一位) (3)步长从开始索引走起,步长分正负 三、常见的字符串函数 字符串的定义:要用单引号或双引号(英文)括起来表示 str=‘abc123‘ print(type(str)) 打印类型: str1="admin:123456" print(type(str1)) 打印类型: 1、str.capitalize():实现首字母大写,其它字母小写输出 2、str.count(‘xx‘):统计xx字符在str中的数量 总结:在count函数中,统计字符时,如果是数字,必须加引号 str="123456" 4、str.split("xx"):分割函数,指定当前字符串作为一个字符串,且返回一个列表 str=“abc123” 5、str.strip("x"):删除字符串开头和结尾的字符 str="abc123" 6、str.lstrip("x"):删除字符串开头的字符 str="abc123" 7、str.rstrip("x"):删除字符串结尾的字符 str="abc123" 8、str.startswith("x"):判断字符串是否以x开头,若是:返回True;否则,返回False str="abc123" 9、str.endswith("x"):判断字符串 从左往右查找,找到第一个返回当前字符的索引位,如果找不到,返回-1 从右往左查找,找到第一个 11、str.replace( "x","y" ,5 ):替换指定字符串,且可以指定替换次数 str="abc1231" 12、str.lower():将字符串中的所有大写字母改为小写字母 str="ABC12ed" 13、str.upper:将字符串中的所有小写字母改为大写字母 str="ABC12ed" 四、字符串的判断方法 特殊情况: str=“123” 2、str.isdigit():判断字符串是否全为数字 str="123" str=“abc1” 4、str.isupper():判断字母是否为大写 str="ABC1" 5、str.istitle():判断首字母是否为大写,其它字母是否为小写 print(str.istitle()) 五、python中的列表 1、list列表 list=[1,2,3,4,5,‘test‘ ] a=‘hello‘ 通过索引赋值:格式 列表名[索引]=“新值” 2、根据索引来对列表赋值 list=[1,2,3,4,5,"rest"] (2)从索引位开始赋值 list=[1,2,3,4,5] 3、列表添加元素:append a=[1,2,3,4,5] 4、列表拼接:extend a=[1,2,3] 5、列表中插入一个值:insert a=[1,2,3,4,5] (2)存在的索引值(插入到索引位前面) (3)负向索引(插入到索引位前面) 6、删除列表中的元素:remove,del (1)remove删除具体的值 (2)del通过索引位删除 a=[1,2,3,4,5] 7、升序:sort a=[1,5,4,3,2] 9、反转输出:reverse 10、删除函数:pop 11、删除具体的值:remove a=[1,2,‘a‘,‘b‘,3,‘a‘] 12、根据索引位输出具体值:index a=[1,2,3,4,5] 六、python中的元组 1、元组转列表,通过list的方法 a=(1,2,3,4,5) 2、转换成列表再进行修改、增加、删除 3、将列表转换成元组,使用tuple a=[1,2,3,4,5] 4、元组可以通过切片操作 a=(1,2,3,4,5,6,7,8,9) 5、元组可以通过索引位取值 a=(1,2,3,4,5) 七、python中的字典:dict类型 1、定义一个字典 d={"name":"张三","age":18} 2、列表转化成字典步骤(重点) a=[(‘name‘,‘张三‘),(‘age‘,18)] 3、字典中添加键值对的格式:变量名[键]=值 4、替换字典中的值 5、通过keys取出相应的键 6、通过values取出相应的值 7、通过键来获取相应的值 8、添加设置默认键值 9、修改字典键值 10、删除键 11、使用for循环获取key 12、使用for循环获取key,values 13、通过iteams()方法获取对应键值对 14、通过pop函数删除指定的键,打印返回对应键的值 15、打印删除后字典的内容(默认删除最后) 16、清空当前字典的内容:clear 17、通过键获取对应的值 18、快速生成一个字典的方法fromkeys print{}.fromkeys([‘name‘,‘age‘]) a= 19、生成一个字典和值 print({}.fromkeys(["name","age"],"a")) 20、已生成字典,通过fromkeys赋值 21、将多个字典合并:update 22、复制字典:copy 23、删除字典字段 八、集合 1、可变集合 1、对列表数据重复的进行去重 2、对列表数据重复的进行去重 new=[1,2,3,44,3,2,1,55,44] 3、对一个字符串进行去重:set str="hello" 4、清除集合中的内容:clear 5、随机删除集合里的内容:pop 6、删除指定内容:remove 7、复制集合:copy 8、不可变集合:frozenset python中的数据结构 标签:包含 重复 双引号 操作 代码 split cap xtend 直接 原文地址:https://www.cnblogs.com/yuecaoyu/p/14256622.html str="dasfagfg"
print(str.capitalize())
输出结果:Dasfagfg
tr="dasAagfg"
print(str.capitalize())
输出结果:Dasaagfg str="dasAagfg"
print(str.count(‘a‘))
输出结果:2 str="dasAagfg1111"
print(str.count("1"))
输出结果:4
print("_".join(str))
输出结果:1_2_3_4_5_6
num=str.split("b")
print(num)
输出结果:“a”,“c123”
print(str.strip("ab"))
输出结果:c123
print(str.lstrip("ab"))
输出结果:c123
print(str.rstrip("23"))
输出结果:abc1
str.startswith("abc")
输出结果:True str="abc123"
str.endswith("123")
输出结果:True10、find、rfind通过具体的值来找到对应值的索引位
str="abcad123"
print(str.find("a"))
输出结果:0
str=“abc123”
print(str.rfind("1"))
输出结果:3
print(str.replace("1","ycy",3))
输出结果:abcycy23ycy
print(str.lower(str))
输出结果:abc12ed
print(str.upper())
输出结果:ABC12ED
以下都是字符串的判断,返回结果只有true or false
1、isalnum:判断字符串是否是字母、数字或数字字母组合
str="abc"
print(str.isalnum())
输出结果:True
str=“中国”
print(str.isalnum())
print(str.encode(utf-8).isalnum())
输出结果:True
Faluse
print(str.isalnum())
输出结果:True
print(str.isdigit())
输出结果:True
s
3、str.islower():判断字母是否都为小写
print(str.lower())
输出结果:True
print(str.issupper())
输出结果:True 输出结果:true
字符串:str""
列表:list=[]
元组:tuple()
字典:dict{}
集合:可变集合,不可变集合
定义列表的两种方法:
(1)通过 [ ] 来直接定义
print(type(list))
输出结果:
(2)通过list来转换
print(type(a))
输出结果:
b=list(a)
print(type(b))
输出结果:
print(b)
输出结果:[‘h‘,‘e‘,‘l‘,‘l‘,‘o‘]
(3)对列表进行操作
通过切片赋值:格式 列表名[索引:]=“新值”
append:添加函数
exend:添加函数,两个表拼接
insert:插入
remove:删除
del:删除
sort:升序
sorted:降序
reverse:反转
pop:删除
index:索引位
(1)索引方式赋值
list[4]="yy"
print(list)
打印结果:
list[3:]="老王吃屁"
print(list)
输出结果:[1, 2, 3, ‘老‘, ‘王‘, ‘吃‘, ‘屁‘]
a=[1,2,3,4,5]
print(a.append(“hello”))
输出结果:返回结果none
print(a.append("hello"))
输出结果:
b=[4,5,6]
a.extend(b)
print(a)
输出结果:[1,2,3,4,5,6] a=[1,2,3]
b=[4,5,6]
print(a.extend(b))
输出结果:none
(1)超出的索引值
a.insert(10,"helllo")
print(a)
输出结果:[1,2,3,4,5,"hello"] a=[1,2,3,4,5]
a.insert(0,"helllo")
print(a)
输出结果:[“hello”,1,2,3,4,5] a=[1,2,3,4,5]
a.insert(-1,"helllo")
print(a)
输出结果:[1,2,3,4,“hello”,5] a=[“a”,1,2,3,"a",4,5,"b"]
a.remove("helllo")
print(a)
输出结果:[1,2,3,"a",4,5,"b"]
备注:多个同样的值,只能删除一个;可以删除数字、字母、字符
del a[1]
print(a)
输出结果:[1,3,4,5]
备注:超出索引位报错
a.sort()
print(a)
输出结果:[1,2,3,4,5]
备注:字母、字符不能进行排序,会报错 a=[1,5,4,3,2]
print(sorted(a,reverse=False))
输出结果:[1,2,3,4,5] 8、降序:sorted
a=[1,5,4,3,2]
print(sorted(a,reverse=True))
输出结果:[5,4,3,2,1]
备注:ture和false 中的首个字母大写 a=[1,2,5,4,5]
a.reverse()
print(a)
输出结果:[5,4,5,2,1] a=[1,2,3,4,5]
a.pop()
print(a)
输出结果:[1,2,3,4]
备注:默认删除末尾值 a=[1,2,3,4,5]
print(a.pop())
输出结果:[5]
备注:输出被删除的值 a=[1,2,3,4,5]
a.pop(1)
print(a)
输出结果:[1,3,4,5]
备注:删除索引位为1的值 a=[1,2,3,4,5]
print(a.pop(1))
输出结果:[2]
备注:删除索引位为1的值并输出删除值
a.remove(‘a‘)
print(a)
输出结果:[1,2,‘b‘,3,‘a‘]
备注:默认删除一个值
print(a.index(2))
输出结果:3
元组的类型为:tuple ()
字符串的类型为:str =“”
列表的类型为:list =[]
元组定义后由于不可直接修改则相对于代码来说要更加安全
注意:当元组中只有一个值时,需要在值的后面加上逗号(,)
列表和元组的区别:列表可变,原则不可变
2、如果要让一个值的输出为元组,值后面要加逗号
print(type(a))
输出结果:
b=list(a)
print(a)
输出结果: a=(1,2,3,4,5)
b=list(a)
b.append("yy")
print(b)
输出结果:[1,2,3,4,5,"yy"]
print(type(a))
输出结果:
b=type(a)
print(type(b))
输出结果:
print(a[1:])
输出结果:(2,3,4,5,6,7,8,9)
备注:a[1:]的意思是,从索引位1开始到末尾,步长值为1
print(a[::-1])
输出结果:(9,8,7,6,5,4,3,2,1)
print(a[2])
输出结果:3
字典是由键值对组成,键是唯一,值可以不唯一。
{}英文的大括号,也叫花括号
字典中,键值是一个整体,多个键值时需要用逗号隔开。
整数类型不需要加单双引号,其他的都需要加单双引号
键和值中间用英文的:冒号,比如,name:张三 定义一个字典
print(type(d))
print(d)
输出结果:
b=dict(a)
print(type(b))
输出结果:
print(b)
输出结果: a={"name":"张三","age":18}
a[‘sex‘]="男"
print(a)
输出结果:{‘name‘: ‘张三‘, ‘age‘: 18, ‘sex‘: ‘男‘} a={"name":"张三","age":18}
a[‘name‘]="李四"
print(a)
输出结果:{‘name‘: ‘李四‘, ‘age‘: 18} a={"name":"张三","age":18}
print(a.keys())
输出结果:dict_keys([‘name‘, ‘age‘]) a={"name":"张三","age":18}
print(a.values())
输出结果:dict_values([‘张三‘, 18]) a={"name":"张三","age":18}
print(a["name"])
输出结果:张三 a={"name":"张三","age":18}
a.setdefault(‘sex‘,‘男‘)
print(a)
输出结果:{‘name‘: ‘张三‘, ‘age‘: 18, ‘sex‘: ‘男‘}
备注:字典的默认值优先级特别低 a={"name":"张三","age":18}
a["name"]="李四"
print(a)
输出结果:{‘name‘: ‘李四‘, ‘age‘: 18} a={"name":"张三","age":18}
del a["name"]
print(a)
输出结果:{‘age‘: 18} a={"name":"张三","age":18}
for k in a:
print(k) a={"name":"张三","age":18}
for k in a:
print(k,a[k])
输出结果:name 张三 age 18 a={"name":"张三","age":18}
for k,v in a.items():
print(k,v)
输出结果:name 张三 age 18 a={"name":"张三","age":18}
print(a.pop("name"))
输出结果:张三
print(a)
输出结果:{‘age‘: 18} a={"name":"张三","age":18}
print(a.popitem())
输出结果:(‘age‘, 18) a={"name":"张三","age":18}
a.clear()
print(a)
输出结果:{} a={"name":"张三","age":18}
print(a)
print(a.get(name))
输出结果:张三
备注:如果是一个不存在的键,返回的值时none
输出结果:{‘name‘: None, ‘age‘: None}
print(a)
输出结果:{‘name‘: None, ‘age‘: None}
输出结果:{‘name‘: ‘a‘, ‘age‘: ‘a‘} a={"name":"张三","age":18}
print({}.fromkeys(["name","age"],"a"))
输出结果:{‘name‘: ‘a‘, ‘age‘: ‘a‘} a={"name":"张三","age":18}
c={"sex":"男"}
a.update(c)
print(c)
输出结果:{‘name‘: ‘张三‘, ‘age‘: 18, ‘sex‘: ‘男‘} a={"name":"张三","age":18}
b=a.copy()
print(b)
输出结果:{‘name‘: ‘张三‘, ‘age‘: 18} a={"name":"张三","age":18}
del a["name"]
print(a)
输出结果:{‘age‘: 18}
集合是不同元素的无序集合,与序列不同,集合没有切片操作。set集合最重要的功能就是去重,
集合可分为:可变集合、不可变集合。
(1)可变集合(set):集合里面的元素是可以发生动态变化的,集合中可以动态的增加和删除。
(2)不可变集合(frozenset):集合里面的元素不可以发生变换。
备注:集合中的元素是无序的,且集合后元素不重复。
2、对一个字符串进行去重
print(type(new))
输出结果:
print(new)
输出结果:[1, 2, 3, 44, 3, 2, 1, 55, 44]
yy=set(new)
print(type(yy))
输出结果:
print(yy)
输出结果:{1, 2, 3, 44, 55}
向集合里添加元素:update、add
yy=set(str)
print(yy)
输出结果:{‘l‘, ‘h‘, ‘e‘, ‘o‘}
yy.update("8")
print(yy)
输出结果:{‘o‘, ‘e‘, ‘8‘, ‘l‘, ‘h‘}
yy.add("9")
print(yy)
输出结果:{‘8‘, ‘h‘, ‘o‘, ‘e‘, ‘9‘, ‘l‘}
备注:集合是无序的 xx="hello"
yy=set(xx)
yy.clear()
print(yy)
输出结果:set() xx="hello"
yy=set(xx)
yy.pop()
print(yy)
输出结果:{‘h‘, ‘o‘, ‘l‘} xx="hello"
yy=set(xx)
yy.remove("l")
print(yy)
输出结果:{‘h‘, ‘o‘, ‘e‘} xx="hello"
yy=set(xx)
a=yy.copy()
print(a)
输出结果:{‘e‘, ‘l‘, ‘h‘, ‘o‘}
不可变集合只能使用copy,进行添加或删除都会报错 xx="hello"
yy=forzenset(xx)
a=yy.copy()
print(a)
输出结果:frozenset({‘h‘, ‘l‘, ‘e‘, ‘o‘})