Python str/list/dict类型相互转换

本文介绍Python中字符串、列表和字典三种基本数据类型之间的转换方法。包括如何利用split()和join()方法进行字符串与列表的互转,如何利用eval()和str()函数实现字符串与字典的转换,以及如何借助zip()和dict()函数完成列表与字典间的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python str/list/dict类型相互转换

 

1. 字符串str <-> 列表list

list(str),字符串返回字符列表。

s = 'I got it'
l = list(s)
print(l)
## ['I', ' ', 'g', 'o', 't', ' ', 'i', 't']

str.split(),字符串的split()方法,返回分隔后的子字符串列表。

s = 'I got it'
l = s.split()
print(l)
## ['I', 'got', 'it']

l = s.split('o')
print(l)
## ['I g', 't it']

列表转字符串需要使用str.join()方法

l = ['a', 'b', 'c']
s = ''.join(l)
print(s)
## 'abc'
s = '_'.join(l)
## 'a_b_c'
s = '_split_'.join(l)
## 'a_split_b_split_c'

 

2. 字符串str <-> 字典dict

字符串转字典,需要首先保证字符串为字典定义格式,如'{"id": 1, "name": "li"}' ,然后使用内置函数eval(),将字符串转为响应的对象创建命令。

s = '{"id": 1, "name": "li"}'  
d = eval(s)
type(d)
## <class 'dict'>
print(d)
## {'id': 1, 'name': 'li'}

字典转字符串,可以使用str()函数,即输出为字典的定义字符串。

d = {"id": 1, "name": "li"}
s = str(d)
print(s)
## "{'id': 1, 'name': 'li'}"

 

3. 列表list <-> 字典dict

单个列表,无法强制转换为字典。

两个列表,则可以通过内置函数zip(),组合为zip对象,再通过内置函数dict()转换为字典。

l1 = ['a', 'b', 'c']
l2 = [1, 2, 3]
dict(zip(l1,l2))
## {'a': 1, 'b': 2, 'c': 3}
dict(zip(l2,l1))
##{1: 'a', 2: 'b', 3: 'c'}

当两个列表的长度不一致时,较长列表多出的部分会被舍弃掉。

l1 = ['a', 'b', 'c', 'd']
l2 = [1, 2, 3]
dict(zip(l1,l2))
## {'a': 1, 'b': 2, 'c': 3}
dict(zip(l2,l1))
## {1: 'a', 2: 'b', 3: 'c'}

当作为key的列表中,出现重复元素时,只有最后的key有效,也可以理解为字典对同一key的复制,只有最后一次赋值生效。作为value的列表,无重复值的限制。

l1 = ['a', 'b', 'a']
l2 = [1, 2, 3]
dict(zip(l1,l2))
## {'a': 3, 'b': 2}
dict(zip(l2,l1))
## {1: 'a', 2: 'b', 3: 'a'}

通过内置函数list(),可以获取字典的key列表。通过dict.keys()可以获取dict_keys字典键对象,再使用list()函数可以得到字典键列表。通过dict.values()可以获取dict_values字典值对象,再使用list()函数可以得到字典值列表。

d = {'a': 1, 'b': 2, 'c': 3}
list(d)
## ['a', 'b', 'c']
list(d.keys())
## ['a', 'b', 'c']
list(d.values())
## [1, 2, 3]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值