python 数据类型之间转换
来源:互联网 发布:王思仪铁观音淘宝店 编辑:程序博客网 时间:2024/06/05 16:24
一、字典
(1)字典转字符串
字典转字符串可以直接使用str函数
dict1 = {'s':12,"er":"io"}
str1 = str(dict1)
结果:
{'s': 12, 'er': 'io'}
利用json进行转换
import json
data1 = {'b': 789, 'c': 456, 'a': 123}
encode_json = json.dumps(data1)
print type(encode_json), encode_json
结果:
<type 'str'> {"a": 123, "c": 456, "b": 789}
(2)字典转元组
字典转元组可以直接使用tuple函数进行转换,默认转换的是key,如果要转换values需要指定
dict1 = {'key1':'value1','key2':'value2','key3':'value3'}
tuple1 = tuple(dict1)
tuple2 = tuple(dict1.values())
结果:
('key3', 'key2', 'key1')
('value3', 'value2', 'value1')
(3)字典转列表list
dict1 = {'key1':'value1','key2':'value2','key3':'value3'}
list1 = list(dict1)
list2 = list(dict1.values())
结果:
['key3', 'key2', 'key1']
['value3', 'value2', 'value1']
二、元组
(1)元组转字符串
tuple1 = ("tuple1","tuple2","tuple3")
str1 = str(tuple1)
str2 = str(tuple1[0])
str3 = "".join(tuple1)
str4 = ",".join(tuple1)
str5 = tuple1.__str__()
结果:
"('tuple1', 'tuple2', 'tuple3')"
'tuple1'
'tuple1tuple2tuple3'
'tuple1,tuple2,tuple3'
"('tuple2', 2, 'tuple3')"
注意:在使用join将元组转换成字符串时,元组的元素必须都是字符串,不能含有整数
tuple2 = ("tuple2",2,"tuple3")
str2 = ",".join(tuple2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: sequence item 1: expected string, int found
(2)元组转列表
元组转列表可以直接使用list函数进行转换
tuple1 = ('tuple1', 'tuple2', 'tuple3')
tuple2 = ('tuple2', 2, 'tuple3')
list1 = list(tuple1)
list2 = list(tuple2)
结果:
['tuple1', 'tuple2', 'tuple3']
['tuple2', 2, 'tuple3']
(3)元组转字典
元组不可以转为字典
三、列表
(1)列表转字符串
列表转为字符串可以直接使用str或者是join
list1 = ["www","baidu","com"]
str1 = str(list1)
str2 = "".join(list1)
str3 = ".".join(list1)
结果:
"['list1', 1, 2, 3, 4, 'list2']"
'www.baidu.com'
注意:
在使用join转换时,列表元素应该都是字符
含有除字符以外的列表转字符串
list1 = ['www','baidu','com',12,34]
str1 = ".".join(map(str,list1))
结果:
'www.baidu.com.12.34'
(2)列表转元组
列表转元组可以直接使用tuple函数
list1 = ['www','baidu','com',12,34]
tuple1 = ".".join(map(str,list1))
结果:
('www', 'baidu', 'com', 12, 34)
(3)列表不可以转字典
四、字符串
(1)字符串转元组
str1 = "www.baidu.com"
tuple1 = tuple(str1)
结果:
('w', 'w', 'w', '.', 'b', 'a', 'i', 'd', 'u', '.', 'c', 'o', 'm')
根据指定的字符将字符串转为元组
str1 = "www.baidu.com"
tuple1 = tuple(str1.split('.'))
结果:
('www', 'baidu', 'com')
(2)字符串转列表
str1 = "www.baidu.com"
list1 = list(str1)
结果:
['w', 'w', 'w', '.', 'b', 'a', 'i', 'd', 'u', '.', 'c', 'o', 'm']
根据指定的字符将字符串进行拆分为列表
str1 = "www.baidu.com"
list1 = str1.split('.')
结果:
['www', 'baidu', 'com']
(3)字符串转字典
字符串转字典可以使用eval()函数,但是该函数在使用的过程中会遇到一些问题,比如会提示bool类型true、null没有定义
str2 = "{'key1':'valu1','key2':'value2'}"
dict2 = eval(str2)
结果:
{'key2': 'value2', 'key1': 'valu1'}
使用这个函数会出现一些错误
str1 = "{'key1':'value1','key2':true,'key3':null}"
dict1 = eval(str1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1, in <module>
NameError: name 'true' is not defined
出现这种错误的原因,是因为该函数无法识别true、null这些,解决方法是:
global true
global null
true = 'true'
null = 'null'
dict1 = eval(str1)
print dict1
结果:
{'key3': 'null', 'key2': 'true', 'key1': 'value1'}
对于多维字典的转换需要使用另外一个工具json
student = '{"grade":"three","message":{"name":"tom","age":12}}'
result = json.loads(student)
结果:
{u'grade': u'three', u'message': {u'age': 12, u'name': u'tom'}}
- python 数据类型之间转换
- Python:数据类型之间的转换
- Python数据类型之间的转换
- Python数据类型之间的转换
- python各种数据类型之间的转换
- python基础---数据类型之间的转换
- Python数据类型之间的转换(三)
- python基础--数据类型之间的转换
- 数据类型之间的转换
- 数据类型之间的转换
- 数据类型之间的转换
- 数据类型之间的转换
- 数据类型之间的转换
- 数据类型之间的转换
- vc 数据类型之间的转换
- java数据类型之间的转换
- Java 数据类型之间的转换
- 【JAVA】之【数据类型之间转换】
- 从头开始学ElasticSearch
- Java Character 类
- 扎心,MySQL表分区太多了
- SSD ECC纠错“天网”之LDPC码
- 自动类型、强制类型转换、及类型提升问题
- python 数据类型之间转换
- malloc,calloc,realloc
- POJ 3063 Sherlock Holmes 笔记
- effective c++ item13:使用对象管理资源
- Spring整合Mybatis(一)
- Glide Exception:"You must not call setTag() on a view Glide is targeting"
- Linux下SGI的hashtable的调用方法,(之前一直调用好多错误,网上也找不到答案,现在终于搞定了)
- Tex Quotes (P45) / POJ 1488
- ubuntu 14.04 samba