目录
Ⅰ、字符串与列表
一、字符串转化为列表
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()
使用字符串劈分操作 .split()函数进行劈分
str1 = 'hello world'
print(str1.split()) #默认的劈分符为空格
list2 = list(str1)
print(list2)
su = "['sa','sd']"
list3 = eval(su)
print(list3)
但要注意使用eval函数时,字符串的类型必须是列表加上双引号的格式,如果是普通的字符串类型会报错。
import json
s='["da","ad"]'
i = json.loads(s)
print(i)
注意:字符串格式必须是双引号括起的列表元素再用单引号括起,因为json.loads() 是将json格式字符串转换为python对象,而按json的格式规范应该使用双引号,单引号会报错
import re
str2 = "vcxv$fsfs&gdgd|sdsds"
new_lst = re.split("$&|",str2)
list1 = ['hello','world']
new_list1 = list1[0] + list1[1]
print(new_list1)
print(''.join(list1))
print(','.join(list1))
#''之中可以设置分隔符
list = ['ad','fd','rw',13]
new_str = str(list)
print(new_str,type(new_str))
['ad', 'fd', 'rw', 13]
import json
list = ['ad','fd','dw',13]
new_str = json.dumps(list)
print(new_str,type(new_str))
["ad", "fd", "dw", 13]
使用json的标准规范,转换后得到的字符串都是双引号括起来的。
如果想要得到的字符串仍然用单引号则可以使用.replace
new_str = json.dumps(list).replace("\"","'")
字符串的格式必须是字典加上双引号。
import json
s = "{'usr':'cat','password':12345}" #不区分单双引号
dict1 = eval(s)
print(dict1)
使用json模块必须是单引号括起来的。
import json
s = '{"usr":"cat","password":12345}'
dict1 = json.loads(s)
print(dict1)
import ast
s = '{"usr":"cat","password":12345}' #不区分单双引号
dict1 = ast.literal_eval(s)
print(dict1)
可以看到有两个类似的eval()方法,它们的区别是什么呢:处于安全考虑,因为ast.listeral_eval()会判断计算后的结果是不是合法的python类型,如果是则进行运算,如果不是则不运算,而eval()则不会管这些,即使字符串是一个命令,他也会对其进行解析。因此ast.listeral_eval()相较而言更安全。
d = {"usr":"cat","password":12345}
s = str(d)
print(s,type(s))
{'usr': 'cat', 'password': 12345}
import json
d = {"usr":"cat","password":12345}
s = json.dumps(d)
print(s,type(s))
如果想要得到的字符串仍然用单引号则可以使用.replace
s = json.dumps(d).replace("\"","'")
\"表示的就是" ,就是将 " 替换成 '
d = {"usr":"cat","password":12345}
s = list(d)
print(s,type(s))
list = [["a",3],['b',5],['c',7]]
dict1 = dict(list)
print(dict1)
{'a': 3, 'b': 5, 'c': 7}
将两个列表打包成一个字典,以长度短的列表为依照。
list1 = ["a","b","c"]
list2 = [1,2,3]
dict1 = dict(zip(list1,list2))
print(dict1)
{'a': 1, 'b': 2, 'c': 3}