Python基本数据类型
1.1 列表和元组
 1.2 字符串
 1.3 字典
 1.4 集合1.1 列表和元组
列表的特点:1:列表是有序的,元素可以相同,索引值从0开始。
 2:列表元素不必都是同一种类型。
 3:列表可以进行截取、组合、修改、增加等操作。
 4:列表中的元素用中括号[]来表示。list = [12, ‘Yummy’, 19.2, [1, 3, ‘zhan’],23]
 1:查询
 a = list[0] # 打印list集合第一个元素
 print(a) #12
 b = list[1:] #取下标1(包含1)以后的元素列表
 print(b) #[‘Yummy’, 19.2, [1, 3, ‘zhan’], 23]
 c=list[:3] #取下标3(不包含3)以前的元素列表
 print© #[12, ‘Yummy’, 19.2]
 d=list[1:3] #取下标1至下标3(包含1不包含3)之间的元素列表
 print(d) #[‘Yummy’, 19.2]
 e=list[0::2] #后面的2是代表每隔一个元素就取一个
 print(e) #[12, 19.2, 23]
 g = list.index(‘Yummy’) #查询该元素下的索引
 print(g) #1
 2:新增
 list.append(3.2) #默认添加到列表元素的末尾位置
 print(list) #[12, ‘Yummy’, 19.2, [1, 3, ‘zhan’], 23, 3.2]
 list.insert(1,‘jack’) # 第一个是索引,第二个是要添加的数据
 print(list) #[12, ‘jack’, ‘Yummy’, 19.2, [1, 3, ‘zhan’], 23, 3.2]
 3:修改
 list[0] = ‘re’ # 复制替换指定索引下的元素
 print(list) #[‘re’, ‘jack’, ‘Yummy’, 19.2, [1, 3, ‘zhan’], 23, 3.2]
 4:删除
 list.pop() # 删除最后尾部元素
 print(list) #[‘re’, ‘jack’, ‘Yummy’, 19.2, [1, 3, ‘zhan’], 23]
 list.remove(23) # 删除指定的元素
 print(list) #[‘re’, ‘jack’, ‘Yummy’, 19.2, [1, 3, ‘zhan’]]
 5:遍历list列表
 for i in list:
 print(i) # re jack Yummy 19.2 [1, 3, ‘zhan’]
 for i in iter(list): #iter()迭代器接下来会讲解
 print(i) #re jack Yummy 19.2 [1, 3, ‘zhan’]
 v=[“jack”,“tom”]
 for index j in enumrate(list ,0): #将列表组合为一个索引序列,同时列出数据和数据下标
 print(index ,j ) #0 jack 1 tom
 6:合并list列表
 name =[“jack”,“tom”]
 list.extend(name) #两个列表合并成一个新的列表
 print(list) #[‘re’, ‘jack’, ‘Yummy’, 19.2, [1, 3, ‘zhan’], ‘jack’, ‘tom’]
 age =(12,23)
 list.extend(age) #列表和元组合并成一个新的列表
 print(list) #[‘re’, ‘jack’, ‘Yummy’, 19.2, [1, 3, ‘zhan’], ‘jack’, ‘tom’, 12, 23]
 ff ={“k1”:“j”,“k2”:2}
 list.extend(ff) #列表和字典合并成一个新的列表(列表中新增的元素是字典的key)
 print(list) #[‘re’, ‘jack’, ‘Yummy’, 19.2, [1, 3, ‘zhan’], ‘jack’, ‘tom’, 12, 23, ‘k1’, ‘k2’]
 srt = “str”
 list.extend(srt) #列表和字符串合并成一个新的列表(列表中新增的元素是字符串的每个子元素)
 print(list) #[‘re’, ‘jack’, ‘Yummy’, 19.2, [1, 3, ‘zhan’], ‘jack’, ‘tom’, 12, 23, ‘k1’, ‘k2’, ‘s’, ‘t’, ‘r’]
 7:copy (深浅copy以后讲解)
 list_copy = list.copy()
 print(list_copy) #[‘re’, ‘jack’, ‘Yummy’, 19.2, [1, 3, ‘zhan’], ‘jack’, ‘tom’, 12, 23, ‘k1’, ‘k2’, ‘s’, ‘t’, ‘r’]
 8:count 统计
 a = list.count(“jack”) #统计列表中元素的个数
 print(a) #“jack”在元素中有两个,没有为0
 9:排序
 numbers = [34,24,23,22,1,123,35]
 numbers.sort() #正序
 print(numbers) #[1, 22, 23, 24, 34, 35, 123]
 numbers.reverse() #反转(倒序)
 print(numbers) #[123, 35, 34, 24, 23, 22, 1]
 numbers[::-1] #倒序
 print(numbers) #[123, 35, 34, 24, 23, 22, 1]元组的特点:
 1:元组(Tuple),元素可以相同,索引值从0开始。
 2:元组元素不必都是同一种类型。
 3:元组(Tuple)一旦创建不能修改,能进行查询操作。
 4:Tuple元组中的元素用小括号()来表示tuple1 = (3.14,‘yu’,[3,1,2],3,4,3,8)
 1:查询
 a= tuple1[0] #查询索引为0的元素
 print(a) #3.14
 b = tuple1.index(‘yu’) #查询该元组下元素的索引
 print(b) #1
 2:count 统计
 c = tuple1.count(3) #统计元组中该元素的个数
 print© #2
 3:遍历
 for i in tuple1:
 print(i) #3.14 yu [3, 1, 2] 3 4 3 8
 for i in iter(tuple1):
 print(i) #3.14 yu [3, 1, 2] 3 4 3 8
 4:元组和列表转换
 列表》》》元组
 list= [1,2,3,4,5]
 print(tuple(list)) #(1, 2, 3, 4, 5)
 元组》》》 列表
 num_tuple_01 = (1,2,3,4,5)
 num_list_01 = list(num_tuple_01)
 print(num_list_01) # [1, 2, 3, 4, 5]
 补充:#tuple[1] = ‘a’ #元组不能修改,否则报错TypeError: ‘tuple’ object does not support item assignment1.2 字符串
 s=" qweQWE123qwe"
 1:conut 统计
 a = s.count(“q”) #统计字符串中的子元素的个数,没有为0
 print(a) #2
 2:encode编码
 b=s.encode()
 print(b) #b’ qweQWE123qwe’
 3:find #寻找子序列位置,如果没找到,返回 -1
 c = s.find(“qwe”) #从起始位开始找,找到第一个符合的为止
 print© #3
 4:strip #移除两端空白
 d = s.strip()
 print(d) #qweQWE123qwe
 5:split分割
 e = s.split(“qwe”) #字符串以"qwe"进行分割,每个子元素组合成列表
 print(e) #[’ ‘, ‘QWE123’, ‘’]
 6:partition分割三部分
 f = s.partition(“qwe”) #以"qwe"分割形成一个三部分组合的元组
 print(f) #(’ ', ‘qwe’, ‘QWE123qwe’)
 7:replace替换
 g = s.replace(“qwe”,“23”)
 print(g) #23QWE12323
 8:lower () #大写变小写
 v = s.lower()
 print(v) #qweqwe123qwe
 9:islower #是否为小写,是为True,否则是False
 v = s.islower()
 print(v) #False
 10:upper() #小写变大写
 v = s.lower()
 print(v) #QWEQWE123QWE
 11:isupper #是否为大写,是为True,否则是False
 v = s.isupper()
 print(v) #False1.3 字典
字典的特点:1:字典Dictionary是无序的,是通过key-value进行存储的,key不能重复,否则会被覆盖,天生去重。
 2:字典中的value不必都是同一种类型。
 3:列表可以进行截取、组合、修改、增加等操作。
 4:字典中的元素用中花括号{}来表示.info = {
 ‘name1’: “jack”,
 ‘name2’: “rose”,
 ‘name3’: “tom”,
 }
 1:查询
 print(info.get(“name5”)) #如果没有对应的key不会报错,会返回None
 print(info.get(“name1”)) #jack
 print(info[“name1”]) #jack
 #print(info[“name5”]) #如果没有对应的key,则会报错KeyError2:新增
 info[“name4”]=“小场” #key是字典中没有的,如果字典中有则是修改
 print(info) #{‘name1’: ‘jack’, ‘name2’: ‘rose’, ‘name3’: ‘tom’, ‘name4’: ‘小场’}3:修改
 info[“name2”]=“小子”
 print(info) #{‘name1’: ‘jack’, ‘name2’: ‘小子’, ‘name3’: ‘tom’, ‘name4’: ‘小场’}4:删除
info.pop(“name1”)
 print(info) #{‘name2’: ‘小子’, ‘name3’: ‘tom’, ‘name4’: ‘小场’}
 del info[‘name2’]
 print(info) #{‘name3’: ‘tom’, ‘name4’: ‘小场’}
 info.popitem() #随机删除
 print(info) #{‘name3’: ‘tom’}5:clear清除 #清除字典中所有的项,返回{}
 dic = {‘a’ : 1, ‘b’ : 2, ‘c’ : 3, ‘d’ : 4}
 dic.clear()
 print(dic) #{}6:遍历
 dic = {‘a’ : 1, ‘b’ : 2, ‘c’ : 3, ‘d’ : 4}
 for key in dic :
 print(key,’:’,dic.get(key))
 for k,v in dic.items(): #会先把dict转成list,数据里大时莫用
 print(k,v)
 for k in iter(dic): #迭代进行遍历
 print(k,dic.get(k))
 for k in dic.values(): #遍历所有的value
 print(k)
 for k in dic.keys(): #遍历所有的key
 print(k)
 7:合并dict
 dic2 = {‘aa’ : 2, ‘bb’ : 3}
 dMerge = dict(dic, **dic2)
 print(dMerge) #{‘a’: 1, ‘b’: 2, ‘c’: 3, ‘d’: 4, ‘aa’: 2, ‘bb’: 3}
 8:copy
 d = {‘age’:8777,‘name’:“jack”}
 a = d.copy()
 a[‘age’] =123
 print(d) #{‘age’:8777,‘name’:“jack”}
 print(a) #{‘age’:123,‘name’:“jack”}1.4 集合
集合的特点:1:set集合是无序的,可以去重。
 2:测试两组数据之前的交集、差集、并集等关系
 3:set集合通过调用set()方法创建s = set([3, 5, 9, 10]) # 创建一个数值集合
 t = set(“Hello”) # 创建一个唯一字符的集合
 a = t | s # t 和 s的并集
 print(a) #{‘H’, 3, 5, ‘l’, 9, 10, ‘e’, ‘o’}
 b = t & s # t 和 s的交集
 print(b) #set()
 c = t - s # 求差集(项在t中,但不在s中)
 print© #{‘e’, ‘l’, ‘H’, ‘o’}
 d = t ^ s # 对称差集(项在t或s中,但不会同时出现在二者中)
 print(d) #{‘H’, 3, 5, 9, 10, ‘l’, ‘e’, ‘o’}
 t.add(‘x’) # 添加一项
 print(t) #{‘H’, ‘l’, ‘x’, ‘e’, ‘o’}
 s.update([10, 37, 42]) # 在s中添加多项
 print(s) #{3, 37, 5, 9, 10, 42}
 #使用remove()
 t.remove(‘H’) #可以删除一项
 print(t) #{‘l’, ‘x’, ‘e’, ‘o’}
 print(len(s)) #set的长度 6
 print(5 in s ) #测试x是否是s的成员
 print(5 not in s) #测试x是否不是s的成员
 s.issubset(t) #s <= t测试是否s中的每一个元素都在t中
 s.issuperset(t) #s >= t测试是否t中的每一个元素都在s中
 s.union(t) #s | t返回一个新的set包含s和t中的每一个元素
 s.intersection(t) #s & t返回一个新的set包含s和t中的公共元素
 s.difference(t) #s - t返回一个新的set包含s中有但是t中没有的元素
 s.symmetric_difference(t) #s ^ t返回一个新的set包含s和t中不重复的元素
 s.copy() #返回set “s”的一个浅复制