# 列表
# 查找元素在列表中位置
p=list.index(value) # list为列表的名字 value为查找的值 p为value在list的位置
# Python中bytes与字符串的相互转化
# bytes转字符串方式一
b=b'\xe9\x80\x86\xe7\x81\xab'
string=str(b,'utf-8')
print(string)
# bytes转字符串方式二
b=b'\xe9\x80\x86\xe7\x81\xab'
string=b.decode() # 第一参数默认utf8,第二参数默认strict
print(string)
# bytes转字符串方式三
b=b'\xe9\x80\x86\xe7\x81haha\xab'
string=b.decode('utf-8','ignore') # 忽略非法字符,用strict会抛出异常
print(string)
# bytes转字符串方式四
b=b'\xe9\x80\x86\xe7\x81haha\xab'
string=b.decode('utf-8','replace') # 用?取代非法字符
print(string)
# 字符串转bytes方式一
str1='逆火'
b=bytes(str1, encoding='utf-8')
print(b)
# 字符串转bytes方式二
b=str1.encode('utf-8')
print(b)
# python3 字典、列表、数组和字符串之间的相互转化
# 字典
dict_1 = {'1': 'a', '2': 'b', '3': 'c'}
print(dict_1) # 打印字典
print(type(dict_1)) # 打印新赋值的字典的类型
print(str(dict_1), end='字符串\n') # 把字典转化成字符串后打印
print(tuple(dict_1), end='元组\n') # 把字典转化为元组后打印
print(list(dict_1), end='列表\n') # 把字典转化为列表后打印
# 元组
tuple_1 = (1, 2, 3, 4, 5)
print(tuple_1) # 打印元组
print(type(tuple_1)) # 打印新赋值的元祖的类型
print(str(tuple_1), end='字符串\n') # 把元组转化成字符串后打印
print(list(tuple_1), end='列表\n') # 把元组转化为列表后打印
# 元组不可转化为字典
#列表
list_1 = [1, 2, 3, 4, 5]
print(list_1) # 打印列表
print(type(list_1)) # 打印新赋值的列表的类型
print(str(list_1), end='字符串\n') # 把列表转化成字符串后打印
print(tuple(list_1), end='元组\n') # 把列表转化为元组后打印
#字符串
string_1 = '(1, 2, 3, 4, 5)'
print(string_1) # 打印字符串
print(type(string_1)) # 打印新赋值的字符串
print(tuple(eval(string_1)), end='元组\n') # 把字符串转化成元组后输出
print(list(eval(string_1)), end='列表\n') # 把字符串转化成列表后输出
# 只有特殊字符串才能转化为字典
string_2 = '{"name":"tom","age":6}'
print(string_2) # 打印新赋值的字符串
print(type(string_2)) # 打印新赋值的字符串的类型
print(eval(string_2), end='字典\n') # 把字符串转化为字典后打印