-
数据类型的补充
-
str
#capitalize 首字母大写,其余变小写 print(s1.capitalize) #swapcase 大小写反转 print(s1.swapcase) #title 每个单词的首字母大写 mag = 'taibai say3hi' print(msg.title()) s1 = 'barry' #center 居中 print(s1.center(20)) #find 通过元素找索引,找到第一个就返回,找不到就返回-1 print(s1.find('a')) #index 通过元素找索引,找到第一个就返回,找不到报错 print(s1.index('a')) #循环一个列表的时候,最好不要改变列表的大小,这样会影响你的最终结果。
-
元素
#元组中如果只有一个元素,并且没有逗号,那么它不是元祖,它还是原来的数据类型。 #count 计数 # tu = (1,2,3,3,3,2,2,3,) print(tu.count(3)) #index 查找对象的索引。 tu = ('太白', '日天', '太白') print(tu.index('太白'))#元祖中有多个对象的话,查找从右数第一个,直接返回。
-
列表
l1 = ['太白','123','女神','大壮'] #count 查找对象在列白在出现的次数 print(l1.count('123')) #index 查找对象在列表中出现在几次 print(l1.index('123')) #sort 按照从小到大排序 l1 = [5, 4, 3, 7, 8, 6, 1, 9] l1.sort() print(l1) #sort(reverse=True) 按照从大到小排序 l1.sort(revese=True) print(l1) #revesrse 反转 l1.revesrse() print(l1) #列表可以相加 l1 = [1,2,3] l2 = ['太白','123','女神'] print(l1+l2) #列表与数字相乘 l1 = [1,2,3] l2 = l1*3 print(l2) l1 = [11, 22, 33, 44, 55] #索引为奇数对应的元素删除(不能一个一个删除,此l1只是举个例子,里面的元素不定)。 #倒序删除元素 for i in range(len(l1)-1,-1,-1): if i % 2 == 1: l1.pop(index) print(l1) #最简单的: del l1[1::2] print(l1)
-
字典
#update 有则覆盖,无责添加 dic = {'name':'太白','age':18} dic.update(hobby='运动',hight='175')#如果字典中没有次键,就是增加。 dic.update(name='太白金星')#如果字典中有次键,那就覆盖。 #pdate还可以将两个字典合成一个,有的覆盖,没有的添加。 dic1 = {"name":"jin","age":18,"sex":"male"} dic2 = {"name":"alex","weight":75} dic1.update(dic2) print(dic1)#{'name': 'alex', 'age': 18, 'sex': 'male', 'weight': 75} #fromkeys 用于创建一个字典,键必须是一个可迭代对象 dic = dict.fromkeys([1,2,3],'alex') print(dic)#{1: 'alex', 2: 'alex', 3: 'alex'} #它们共用的一个值,所以无论那个值被修改,他们都会被修改 dic = {'k1': '太白', 'k2': 'barry', 'k3': '白白', 'age': 18} #将字典中键含有'k'元素的键值对删除。 l1 = [] for i in dic: if 'k' in i: l1.append(key) for z in l1: dic.pop(i) print(dic) #循环一个字典时,如果改变这个字典的大小,就会报错。 #那么就把我们要删除的键添加到一个列表中,然后载循环这个列表,去删除字典中的键值对。
-
-
数据类型的转换
-
# 0 ,'',[],{},set(),None 转换成bool值位False 只要不是空(0),就是True
-
-
编码的进阶
-
不同的密码本之间不能相互识别
-
数据在内存中全部是以Unicode编码的,但是当你的数据用于网络传输,或者储存到硬盘中,必须是以非Unicode编码(utf-8,gbk等)。
-
英文:
-
str:'hello'
内存中的编码方式:Unicode
表现形式:'hello'
-
bytes:
内存中的编码方式:非Unicode
表现形式:b'hello'
-
-
中文
-
str:
内存中的编码方式:Unicode
表现形式:'中国'
-
bytes
内存中的编码方式:非Unicode #Utf-8
表现形式:b'xe4xb8xadxe5x9bxbd'
-
-
#str -->bytes
s1 = '中国'
b1 = s1.encode('utf-8')#编码
print(b1)
b1 = s1.encode('gbk')#编码
bytes-->str
b1 = b'xe4xb8xadxe5x9bxbd'
s2 = b1.decode('utf-8')
print(s2)
#gbk ---> utf-8
b1 = b'xd6xd0xb9xfa'
s = b1.decode('gbk')
b2 = s.encode('utf-8')
print(b2)# b'xe4xb8xadxe5x9bxbd'