标签:*** alt 字符串类型 bytes 修改 添加 str bool 重要
# str :补充的方法练习一遍就行。
s1 = 'taiBAi'
# capitalize 首字母大写,其余变小写
print(s1.capitalize())
# swapcase 大小写翻转
print(s1.swapcase())
# title 每个单词的首字母大写
msg= 'taibai say3hi'
print(msg.title())
s1 = 'barry'
# center 居中:内同居中,总长度,空白处填充
print(s1.center(20))
print(s1.center(20,'*'))
##寻找字符串中的元素是否存在
# find :通过元素找索引,找到第一个就返回,找不到 返回-1
# index:通过元素找索引,找到第一个就返回,找不到 报错
print(s1.find('a'))
print(s1.find('r'))
print(s1.find('o'))
print(s1.index('o'))
# tuple 元组中如果只有一个元素,并且没有逗号,那么它不是元组,它与该元素的数据类型一致。 ***【重点】
tu1 = (2,3,4)
tu1 = (2)
tu1 = ('太白')
tu1 = ([1,2,3])
tu1 = (1,)
print(tu1,type(tu1))
# # count 计数 获取某元素在列表中出现的次数
tu = (1,2,3,3,3,2,2,3,)
print(tu.count(3))
# # index 通过元素找索引(可切片),找到第一个元素就返回,找不到该元素即报错。
tu = ('太白', '日天', '太白')
print(tu.index('太白'))
# count 统计某个元素在列表中出现的次数
a = ["q","w","q","r","t","y"]
print(a.count("q"))
# index
l1 = ['太白', '123', '女神', '大壮']
print(l1.index('大壮'))
# sort **【重点】用于在原位置对列表进行排序
l1 = [5, 4, 3, 7, 8, 6, 1, 9]
l1.sort() # 默认从小到大排序
l1.sort(reverse=True) # 从大到小排序 **
# reverse **【重点】将列表中的元素反向存放
l1.reverse() # 反转
print(l1)
# 列表可以相加
l1 = [1, 2, 3]
l2 = [1, 2, 3, '太白', '123', '女神']
print(l1 + l2)
# 列表与数字相乘
l1 = [1, 'daf', 3]
l2 = l1*3
print(l2)
循环列表,改变列表大小的问题:
l1 = [11, 22, 33, 44, 55]
# 索引为奇数对应的元素删除(不能一个一个删除,此l1只是举个例子,里面的元素不定)。
# *** 重要
# 正常思路:
# 先将所有的索引整出来。
# # 加以判断,index % 2 == 1: pop(index)
# for index in range(len(l1)):
# if index % 2 == 1:
# l1.pop(index)
# print(l1)
## 最简单的:
l1 = [11, 22, 33, 44, 55]
del l1[1::2] #切片步长删除
print(l1)
## 倒序法删除元素
l1 = [11, 22, 33, 44, 55]
for index in range(len(l1)-1,-1,-1):
if index % 2 == 1:
l1.pop(index)
print(l1)
# 思维置换:把索引为偶数的元素添加到一个新列表,在赋值给原列表
l1 = [11, 22, 33, 44, 55]
new_l1 = []
for index in range(len(l1)):
if index % 2 ==0:
new_l1.append(l1[index])
l1 = new_l1
print(l1)
#注意: 循环一个列表的时,最好不要改变列表的大小,这样会影响你的最终的结果。
# 字典的补充:
# update ***
dic = {'name': '太白', 'age': 18}
#增:
dic.update(hobby='运动', hight='175')
#改:
dic.update(name='太白金星')
## 面试会考
dic.update([(1, 'a'),(2, 'b'),(3, 'c'),(4, 'd')])
print(dic)
# 更新,有则覆盖,无则添加
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}
print(dic2)
# fromkeys 创建一个字典:字典的所有键来自一个可迭代对象,字典的值使用同一个值
dic = dict.fromkeys('abc', 100)
dic = dict.fromkeys([1, 2, 3], 'alex')
# 坑:值共用一个,面试题
dic = dict.fromkeys([1,2,3],[])
dic[1].append(666)
print(dic)
循环字典,改变字典大小的问题:
dic = {'k1': '太白', 'k2': 'barry', 'k3': '白白', 'age': 18}
# 将字典中键含有'k'元素的键值对删除。
#错误做法:
# for key in dic:
# if 'k' in key:
# dic.pop(key)
# print(dic)
# 循环一个字典时,如果改变这个字典的大小,就会报错。--->循环一个列表,然后对字典进行修改
#1:
l1 = []
for key in dic:
if 'k' in key:
l1.append(key)
print(l1)
for i in l1:
dic.pop(i)
print(dic)
#2:
for key in list(dic.keys()): # ['k1', 'k2', 'k3','age']
if 'k' in key:
dic.pop(key)
print(dic)
int bool str 三者转换
str list 两者转换
# str ---> list
s1 = 'alex 太白 武大'
print(s1.split()) # ['alex', '太白', '武大']
# list ---> str # 前提 list 里面所有的元素必须是字符串类型才可以
l1 = ['alex', '太白', '武大']
print(' '.join(l1)) # 'alex 太白 武大'
list set 两者转换
# list ---> set
s1 = [1, 2, 3]
print(set(s1))
# set ---> list
set1 = {1, 2, 3, 3,}
print(list(set1)) # [1, 2, 3]
str bytes 两者转换
# str ---> bytes
s1 = '太白'
print(s1.encode('utf-8')) # b'\xe5\xa4\xaa\xe7\x99\xbd'
# bytes ---> str
b = b'\xe5\xa4\xaa\xe7\x99\xbd'
print(b.decode('utf-8')) # '太白'
所有数据都可以转化成bool值
转化成bool值为False的数据类型有:'', 0, (), {}, [], set(), None
a 01000001 一个字符一个字节表示。
a 01000001 ascii码中的字符:一个字符一个字节表示。
中 01001001 01000010 中文:一个字符两个字节表示。
a 01000001 01000010 01000011 00000001
b 01000001 01000010 01100011 00000001
中 01001001 01000010 01100011 00000001
a 01000001 ascii码中的字符:一个字符一个字节表示。
To 01000001 01000010 (欧洲文字:葡萄牙,西班牙等)一个字符两个字节表示。
中 01001001 01000010 01100011 亚洲文字;一个字符三个字节表示。
英文:
? str: ‘hello ‘
? 内存中的编码方式: Unicode
? 表现形式: ‘hello‘
? bytes :
? 内存中的编码方式: 非Unicode
? 表现形式:b‘hello‘
?
? 中文:
? str:
? 内存中的编码方式: Unicode
? 表现形式:‘中国‘
? bytes :
? 内存中的编码方式: 非Unicode # Utf-8
? 表现形式:b‘\xe4\xb8\xad\xe5\x9b\xbd‘
? 注意:bytes类型也是Python基础数据类型之一。bytes是非unicode编码的数据类型,除此之外,python中所有数据类型的编码均为unicode编码。
? bytes类型也称作字节文本,他的主要用途就是网络的数据传输,与数据存储。
# str ---> bytes (Unicode ---> 非Unicode)
s1 = '中国'
b1 = s1.encode('utf-8') # 编码
print(b1,type(b1)) # b'\xe4\xb8\xad\xe5\x9b\xbd'
b1 = s1.encode('gbk') # 编码 # b'\xd6\xd0\xb9\xfa' <class 'bytes'>
# bytes---->str (非Unicode ---> Unicode)
b1 = b'\xe4\xb8\xad\xe5\x9b\xbd'
s2 = b1.decode('utf-8') # 解码
print(s2)
# gbk ---> utf-8
b1 = b'\xd6\xd0\xb9\xfa'
s = b1.decode('gbk')
print(s)
b2 = s.encode('utf-8')
print(b2) # b'\xe4\xb8\xad\xe5\x9b\xbd'
# utf-8 ---> gbk
b1 = b'\xe4\xb8\xad\xe5\x9b\xbd'
s = b1.decode('utf-8')
print(s)#中国
b2 = s.encode('gbk')
print(b2) # b'\xd6\xd0\xb9\xfa'
标签:*** alt 字符串类型 bytes 修改 添加 str bool 重要
原文地址:https://www.cnblogs.com/xiaomage666/p/10829087.html