python中的字符串、列表、字典相互转化

目录

Ⅰ、字符串与列表

一、字符串转化为列表

1、整体转化 ---split()

2、内置函数分割 ---list()

3、使用内置函数---eval()

4、使用内置模块 ---json.loads()

5、使用内置模块 ---re.split()

二、列表转化为字符串

1、字符串拼接 --- +号操作

2、.join()方法

3、使用内置函数 ---str()

4、使用内置模块 ---json.dumps()方法

Ⅱ、字符串与字典

一、字符串转化为字典

1、使用内置函数 ---eval()

2、使用内置模块 ---json.loads()

3、使用内置模块 ---ast.literal_eval()

二、字典转化为字符串

1、使用内置函数 ---str()

2、使用内置模块 ---json.dumps()方法

Ⅲ、字典和列表

一、字典转化为列表

使用内置函数 ---list()

二、列表转化为字典

1、使用内置函数 ---dict()

2、使用内置函数 ---zip()


Ⅰ、字符串与列表

一、字符串转化为列表

1、整体转化 ---split()

使用字符串劈分操作 .split()函数进行劈分

str1 = 'hello world'
print(str1.split())  #默认的劈分符为空格

2、内置函数分割 ---list()

list2 = list(str1)
print(list2)

3、使用内置函数---eval()

su = "['sa','sd']"
list3 = eval(su)
print(list3)

但要注意使用eval函数时,字符串的类型必须是列表加上双引号的格式,如果是普通的字符串类型会报错。

4、使用内置模块 ---json.loads()

import json
s='["da","ad"]'
i = json.loads(s)
print(i)

注意:字符串格式必须是双引号括起的列表元素再用单引号括起,因为json.loads() 是将json格式字符串转换为python对象,而按json的格式规范应该使用双引号,单引号会报错

5、使用内置模块 ---re.split()

import re
str2 = "vcxv$fsfs&gdgd|sdsds"
new_lst = re.split("$&|",str2)

二、列表转化为字符串

1、字符串拼接 --- +号操作

list1 = ['hello','world']
new_list1 = list1[0] + list1[1]
print(new_list1)

2、.join()方法

print(''.join(list1))
print(','.join(list1))
#''之中可以设置分隔符

3、使用内置函数 ---str()

list = ['ad','fd','rw',13]
new_str = str(list)
print(new_str,type(new_str))

['ad', 'fd', 'rw', 13] <class 'str'>

4、使用内置模块 ---json.dumps()方法

import json
list = ['ad','fd','dw',13]
new_str = json.dumps(list)
print(new_str,type(new_str))

["ad", "fd", "dw", 13] <class 'str'>

使用json的标准规范,转换后得到的字符串都是双引号括起来的。

如果想要得到的字符串仍然用单引号则可以使用.replace

new_str = json.dumps(list).replace("\"","'")

Ⅱ、字符串与字典

一、字符串转化为字典

字符串的格式必须是字典加上双引号。

1、使用内置函数 ---eval()

import json
s = "{'usr':'cat','password':12345}" #不区分单双引号
dict1 = eval(s)
print(dict1)

2、使用内置模块 ---json.loads()

使用json模块必须是单引号括起来的。

import json
s = '{"usr":"cat","password":12345}'
dict1 = json.loads(s)
print(dict1)

3、使用内置模块 ---ast.literal_eval()

import ast
s = '{"usr":"cat","password":12345}' #不区分单双引号
dict1 = ast.literal_eval(s)
print(dict1)

可以看到有两个类似的eval()方法,它们的区别是什么呢:处于安全考虑,因为ast.listeral_eval()会判断计算后的结果是不是合法的python类型,如果是则进行运算,如果不是则不运算,而eval()则不会管这些,即使字符串是一个命令,他也会对其进行解析。因此ast.listeral_eval()相较而言更安全。

二、字典转化为字符串

1、使用内置函数 ---str()

d = {"usr":"cat","password":12345}
s = str(d)
print(s,type(s))

{'usr': 'cat', 'password': 12345} <class 'str'>

2、使用内置模块 ---json.dumps()方法

import json
d = {"usr":"cat","password":12345}
s = json.dumps(d)
print(s,type(s))

如果想要得到的字符串仍然用单引号则可以使用.replace

s = json.dumps(d).replace("\"","'")

\"表示的就是" ,就是将 " 替换成 '

Ⅲ、字典和列表

一、字典转化为列表

使用内置函数 ---list()

d = {"usr":"cat","password":12345}
s = list(d)
print(s,type(s))

二、列表转化为字典

1、使用内置函数 ---dict()

list = [["a",3],['b',5],['c',7]]
dict1 = dict(list)
print(dict1)

{'a': 3, 'b': 5, 'c': 7}

2、使用内置函数 ---zip()

将两个列表打包成一个字典,以长度短的列表为依照。

list1 = ["a","b","c"]
list2 = [1,2,3]
dict1 = dict(zip(list1,list2))
print(dict1)

{'a': 1, 'b': 2, 'c': 3}

  • 5
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值