Python基础知识整理——数据对象之间的转换

1.简单的强制转换

函数格式 使用示例 描述
int(x [,base]) int("8")   可以转换的包括String类型和其他数字类型,但是会丢失精度      
float(x)  float(1)或者float("1")  可以转换String和其他数字类型,不足的位数用0补齐,例如1会变成1.0
 complex(real ,imag)  complex("1")或者complex(1,2)  第一个参数可以是String或者数字,第二个参数只能为数字类型,第二个参数没有时默认为0
 str(x)  str(1)  将数字转化为String
 repr(x)  repr(Object)  返回一个对象的String格式
 eval(str)  eval("12+23")  执行一个字符串表达式,返回计算的结果,如例子中返回35
 tuple(seq)  tuple((1,2,3,4))  参数可以是元组、列表或者字典,wie字典时,返回字典的key组成的集合
 list(s)  list((1,2,3,4))  将序列转变成一个列表,参数可为元组、字典、列表,为字典时,返回字典的key组成的集合
 set(s)  set(['b', 'r', 'u', 'o', 'n'])或者set("asdfg")  将一个可以迭代对象转变为可变集合,并且去重复,返回结果可以用来计算差集x - y、并集x | y、交集x & y
 frozenset(s)  frozenset([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])  将一个可迭代对象转变成不可变集合,参数为元组、字典、列表等,
 chr(x)  chr(0x30)  chr()用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符。返回值是当前整数对应的ascii字符。
 ord(x)  ord('a')  返回对应的 ASCII 数值,或者 Unicode 数值
 hex(x)  hex(12)  把一个整数转换为十六进制字符串
 oct(x)  oct(12)

 把一个整数转换为八进制字符串

2.其他转换方法

字符串转为列表

>>> str='python'
>>> str1='python'
>>> list1=list(str1)
>>> list1
['p', 'y', 't', 'h', 'o', 'n']
>>> list2=str1.split()
>>> list2
['python']
>>> str2=
  File "<stdin>", line 1
    str2=
        ^
SyntaxError: invalid syntax
>>> str3 = "www.google.com" 
>>> list=str3.split('.')
>>> list
['www', 'google', 'com']
>>> 

列表转换为字符串

>>> list1=['a','b','c','d']
>>> str1=''.join(list1)
>>> str1
'abcd'
>>> str2='.'.join(list1)
>>> str2
'a.b.c.d'
>>> str2='. '.join(list1)
>>> str2
'a. b. c. d'

列表转换成字典

1.现在有两个列表,list1 = ['key1','key2','key3']和list2 = ['1','2','3'],把他们转为这样的字典:{'key1':'1','key2':'2','key3':'3'}
>>>list1 = ['key1','key2','key3']
>>>list2 = ['1','2','3']
>>>dict(zip(list1,list2))
{'key1':'1','key2':'2','key3':'3'}
2、将嵌套列表转为字典,有两种方法,
>>>new_list= [['key1','value1'],['key2','value2'],['key3','value3']]
>>>dict(list)
{'key3': 'value3', 'key2': 'value2', 'key1': 'value1'}
或者这样:
>>>new_list= [['key1','value1'],['key2','value2'],['key3','value3']]
>>>new_dict = {}
>>> for i in new_list:
...   new_dict[i[0]] = i[1]                #字典赋值,左边为key,右边为value
...
>>> new_dict
{'key3': 'value3', 'key2': 'value2', 'key1': 'value1'}

>>> new_list= [['key1','value1'],['key2','value2'],['key3','value3']]
>>> for i in new_list:
...     new_dict={}
...     new_dict[i[0]]=i[1]
... 
>>> new_dict
{'key3': 'value3'}

字典转换成列表

①转换后的列表为无序列表
a = {'a' : 1, 'b': 2, 'c' : 3}
 
#字典中的key转换为列表
key_value = list(a.keys())
print('字典中的key转换为列表:', key_value)
 
#字典中的value转换为列表
value_list = list(a.values())
print('字典中的value转换为列表:', value_list)
运行结果:

②转换后的列表为有序列表
import collections
z = collections.OrderedDict()
z['b'] = 2
z['a'] = 1
z['c'] = 3
z['r'] = 5
z['j'] = 4
 
#字典中的key转换为列表
key_value = list(z.keys())
print('字典中的key转换为列表:', key_value)
 
#字典中的value转换为列表
value_list = list(z.values())
print('字典中的value转换为列表:', value_list)

字典与字符串之间的转换

#字典转换成字符串
json.dumps(dict1)
>>> import json
>>> str2=json.dumps(dict1)
>>> str2
'{"key2": "value3", "key1": "value1", "key": "value"}'
>>> 
str(dict1)
>>> str3=str(dict1)
>>> str3
"{'key2': 'value3', 'key1': 'value1', 'key': 'value'}"
>>> 

#字符串转换成字典

猜你喜欢

转载自my.oschina.net/u/3754854/blog/1630247