数据类型之间的转换

总结

'''
1:数字类型:算术运算
bool:判断真假,运用场景在逻辑运算里较多,比如while循环了。
字符串:可以索引取值,可以嵌套
列表:存放任意数据类型,因为是按序存放的,故可以索引取值,
字典:可以理解为某种意义上的列表,但区别是存放是无序的,故存放效率高,另外会对数据进行描叙性表述,故取值时是按key来取值的
元组:给看不给“改”的列表
集合:对数据去重
2:数字类型和字符串转化 int,float,str,
列表转字符串: ''.join() 不分开 | 'x'.join()==>以x隔开,
字符串转列表: res.split() 默认按空格拆 res.split(x) x属于res,则去掉x,两边开
list与tuple、set直接相互转化 参考数字和字符串格式
str与tuple、set之间转化通过list转化
3:utf-8在传输过程中运用,理解为压缩包比较好,传输快 utf-16 字节固定,读取内容快
 
数字类型之间的转化 
主要关注两个用法
  join  组合  用于  列表转为字符串  
  split 拆分  字符串转化为列表
字典与其他之间的转化   间接转化
'''

 

1 转化为数字类型 

res = int('10')   # 字符串转化为数字
print(res)
res = int('-3')
print(res)
res = float('.15')
print(res)  # 0.15
res = float('-.15')
print(res)  # -015
res = float('-3.15')
print(res)  # -3.15

2 字符串和列表相互转换

1 字符串转化为列表

1 直接list转化

s = 'abc123呵呵'
print(list(s))  # ['a', 'b', 'c', '1', '2', '3', '呵', '呵'] 字符串转列表

2 使用split转化 

split() 默认按照空格拆   

 res.split(x)   x属于res,则去掉x,两边开

s1 = 'a b c 1 2 3 呵 呵'
res = s1.split()  # 把字符串转化为列表  默认按空格拆
print(res)  # ['a', 'b', 'c', '1', '2', '3', '呵', '呵']
s2 = 'ie=UTF-8&wd=你好帅'
res = s2.split('&')  # 字符串改列表
print(res)  # ['ie=UTF-8', 'wd=你好帅']   split默认按空格来隔开,s2.split('&')则是把&两边分开为列表,去掉&
# 比如- 或8,只要是在s2里就行

  

 2 列表转为字符串

主要方法是join     " ".join(list)   直接组合成字符串

ls = ['a', 'b', 'c', '1', '2', '3', '呵', '呵']
n_s = "".join(ls)
print(n_s,type(n_s))

# abc123呵呵 <class 'str'>

  

"x".join(list)  将列表组合在一起  以@为中间

ls2 = ['ie=UTF-8', 'wd=你好帅']
n_s2 = '@'.join(ls2)
print(n_s2)  # ie=UTF-8@wd=你好帅     ''.join() 中''可以加其他的 比如@ 或4  则列表组合中间多一个其他

# ie=UTF-8@wd=你好帅

  

案例

# 4:需求:"ie=UTF-8&wd=你好帅" => [('ie', 'UTF-8'), ('wd', '你好帅')]


s = "ie=UTF-8&wd=你好帅"
res = []
ls4 = s.split("&")
print(ls4)  # ['ie=UTF-8', 'wd=你好帅']

for ele in ls4:
    print(ele)  # ie=UTF-8
                # wd=你好帅
    k,v = ele.split("=")   # v = ie=UTF-8 | wd=你好帅  for 循环把每个值取出来
    res.append((k,v))      # k: ie  v: UTF-8   赋值 k ,v = ele.split('=')

print(res)

  

# 5.需求:"ie=UTF-8&wd=你好帅" => {'ie': 'UTF-8', 'wd': '你好帅'}
res = {} s5 = "ie=UTF-8&wd=你好帅" ls5 = s5.split('&') # ['ie=UTF-8', 'wd=你好帅'] for ele in ls5: k, v = ele.split('=') # 去掉 = print(k,v) # ie UTF-8 wd 你好帅 res[k] = v # 添加字典的模式 res[k] = v 如果字典中res,有k这个,则把值v赋值给k,如果没有,则在字典中添加k:v print(res) # {'ie': 'UTF-8', 'wd': '你好帅'}

  

#  6.需求:[('ie', 'UTF-8'), ('wd', '你好帅')] => {'ie': 'UTF-8', 'wd': '你好帅'}
res = {}  # 建立新的空字典
ls6 = [('ie', 'UTF-8'), ('wd', '你好帅')]
for k, v in ls6:
    res[k] = v
print(res)

  

3.list与tuple、set直接相互转化

  - 直接 类型()
# 8.需求:将汉字转化为数字
# 将 壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟
# 转化为 1、2、3、4、5、6、7、8、9、10、100、100
# 作业:壹仟捌佰玖拾叁 => 1893

num_map = {
    '壹': 1,
    '贰': 2,
    '仟': 1000
}
ls8 = ['贰', '壹', '仟']
res = []
for v in ls8:
    num = num_map[v]  # 通过key去映射表拿到对应的值,完成 '贰' => 2
    res.append(num)
print(res)

  

 

 
 

  

原文地址:https://www.cnblogs.com/wakee/p/11587966.html