首页 > 技术文章 > python中的各种数据类型中的数据格式转换

treasury-manager 2020-10-14 10:42 原文

一,转换list中的数据格式 str --> float

(一)使用自定义函数

def str2float(list)
      strlist=[]
      for i in list:
            strlist.append(float(i))
      return strlist

小技巧:

1.转换千分符的数字(str)为float型
由于金融行业中的数字常常是带有千分符的,这导致这样的数字不能直接用float()来转换,因为要先处理一下

str = "300,000,000.00"
str = str.replace(',','')    #把字符串中的,用空来代替。
str = float(str)
结果: 300000000.00

2.交换Dict的key,value的位置:(要注意排除value值有重复的情况)

dict_ori = {'A':1, 'B':2, 'C':3}
dict_new = {value:key for key,value in dict_ori.items()}
print(dict_new)

二,转换dict中的数据格式 str --> float

1、字典名.keys:返回一个key的列表
2、字典名.values:返回一个value的列表

(一)转换dict中key的数据格式
(二)使用dict中value的数据格式

三,数据类型函数转换

int(x [,base ]) 将x转换为一个整数
long(x [,base ]) 将x转换为一个长整数
float(x ) 将x转换到一个浮点数
complex(real [,imag ]) 创建一个复数
str(x ) 将对象 x 转换为字符串
repr(x ) 将对象 x 转换为表达式字符串
eval(str ) 用来计算在字符串中的有效 Python表达式,并返回一个对象
tuple(s ) 将序列 s 转换为一个元组
list(s ) 将序列 s 转换为一个列表
chr(x ) 将一个整数转换为一个字符
unichr(x ) 将一个整数转换为Unicode字符
ord(x ) 将一个字符转换为它的整数值
hex(x ) 将一个整数转换为一个十六进制字符串
oct(x ) 将一个整数转换为一个八进制字符串

千分符的数字转为真正的数字

国际标准:

from locale import *
setlocale(LC_NUMERIC, 'English_US')
atof('123,456')    # 123456.0

土办法(将,代替为'')

def convert2float(list):
      list[i]=list[i].replace(',','')
      list[i]=float(list[i])

案例:
num = 34567890.37121

print(f'{int(num):,d}')
34,567,890

print(f'{int(num):,f}')
34,567,890.000000

print(f'{num:,f}')
34,567,890.371210

print(f'{num:,.2f}')
34,567,890.37

推荐阅读