python 列表、元组、字符串、字典、集合之间的相互转化

开头语

本文是关于python语言中的序列数据结构的相互转化的方法
主要列举了在不同情况下,列表、元组、字符串、字典、集合之间的相互转化技巧。

列表

列表最常用, 首先讲列表转化到其他数据结构的各种情况。

列表转化为元组
有关函数:
tuple():将列表转换为元组。

#列表转化为元组
list1 = [23333,"hello",[1,2,3],"God    "]
print(tuple(list1))

输出结果如下:

(23333, 'hello', [1, 2, 3], 'God    ')

列表转化为字符串
有关函数:
str():将对象转化为字符串的形式
string.join(seq):以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
len():获取列表长度
range():产生整数列表

#列表转化为字符串
list2 = ["hello",",","world","!"]
list3 = ["hello",1,"world",2]
#情况一,列表每个元素必须均为字符串类型
print(" ".join(list2))   #string.join(seq)方法作用:以string作为分隔符,将seq中所有的元素(每个元素必须均为字符串类型)合并为一个新的字符串
#情况二
print(str(list2))  #将list2直接转化为字符串,简单地说直接在列表的首尾加上引号,并非对其中元素字符串化
#情况三
for it in range(len(list3)):  #为了让列表内每一个元素变为字符串类型,我们遍历列表并逐个调用str()函数
    list3[it] = str(list3[it])
print(list3)

输出结果如下:

hello , world !
['hello', ',', 'world', '!']
['hello', '1', 'world', '2']

列表转化为字典
有关函数:
dict():可将其它对象转化为字典类型
zip():将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象。

#列表转化为字典
#情况一,一个列表转化为字典
list3 = [(23333, 'hello'), ('hello', ','), ('[1,2,3]', 'world'), ('God    ', '!')]
print(dict(list3))
#情况二,两个列表转化为字典
list1 = [23333,"hello","[1,2,3]","God    "]
list2 = ["hello",",","world","!"]
print(dict(zip(list1, list2)))  #zip函数作用:将两个对象中对应的元素打包成一个个元组,返回一个对象
#注意,list1元素作为键,list2元素作为值,list1中元素必须为不可变元素

输出结果如下:

{23333: 'hello', 'hello': ',', '[1,2,3]': 'world', 'God    ': '!'}
{23333: 'hello', 'hello': ',', '[1,2,3]': 'world', 'God    ': '!'}

列表转化为集合
有关函数:
set():将对象转化为集合类型

#列表转化为集合
list2 = ["hello",",","world","!"]
list3 = ["hello","hello","hello",",","world","!"]
print(set(list2))  
print(set(list3))#可以去重

输出结果如下:

{'hello', ',', 'world', '!'}
{'hello', ',', 'world', '!'}

元组

元组转化为列表
有关函数:
list():将对象转化为列表类型

#元组转化为列表
tuple1 = (23333,"hello",[1,2,3],"God    ")
print(list(tuple1))

输出结果如下:

[23333, 'hello', [1, 2, 3], 'God    ']

其余转化略,元组和列表可以无条件相互转化,所以,如果想要将元组转化为其他数据类型,只需将元组转化为列表,然后从列表转化为其他数据类型即可,同理,其他数据类型转化为元组,要先转化为列表,再从列表转化为元组,以下均略。当然探讨元组直接和其他数据类型相互转化也可以,不过那纯粹是增加记忆负担。


字符串

字符串转化为列表
有关函数:
string.split():以string为分隔符,对字符串进行切片,返回列表
eval():执行一个字符串表达式,并返回表达式的值

#字符串转化为列表
str1 = "123456"
str2 = "1,2,3,4,5,6"
str3 = "1 2 3 4 5 6"
str4 = "[1,2,3,4,5,6]"
#情况一
print(list(str1))  #直接转化,转化字符串中每一个字符为单独一个元素
print(list(str2))  #直接转化,转化字符串中每一个字符为单独一个元素
print(list(str3))  #直接转化,转化字符串中每一个字符为单独一个元素
print()
#情况二
#.split()方法作用:以 str 为分隔符切片 string
print(str2.split())  #直接将整个字符串作为列表中的一个元素
print(str2.split(","))  #将逗号作为分隔符,转化除逗号之外的每一个字符为单独一个元素
print(str3.split(" "))  #将空格作为分隔符,转化除空格之外的每一个字符为单独一个元素
print()
#情况三
print(eval(str4)) #将字符串视为语句,简单地说直接把首尾的引号去掉,就得到了列表

输出结果如下:

['1', '2', '3', '4', '5', '6']
['1', ',', '2', ',', '3', ',', '4', ',', '5', ',', '6']
['1', ' ', '2', ' ', '3', ' ', '4', ' ', '5', ' ', '6']

['1,2,3,4,5,6']
['1', '2', '3', '4', '5', '6']
['1', '2', '3', '4', '5', '6']

[1, 2, 3, 4, 5, 6]

字符串转化为字典
有关函数:
json.loads():用于将str类型的数据转成dict(需要import json)

#字符串转化为字典
import json
str5 = '{"red":1,"blue":2,"green":3}'
#情况一,通用法
print(eval(str5))  #将字符串视为语句,简单地说直接把首尾的引号去掉,就得到了字典
#情况二,专用法
print(json.loads(str5)) #只能将str类型的数据转成dict
#注:使用json.loads函数必须保证字符串最外层引号为单引号,内部键或值的引号为双引号

输出结果如下:

{'red': 1, 'blue': 2, 'green': 3}
{'red': 1, 'blue': 2, 'green': 3}

字符串转化为集合

#字符串转化为集合
str1 = "123456"
str2 = "11123456"
str6 = "{1,2,3,4,5,6}"
#情况一
print(set(str1))
print(set(str2)) #可以去重
#情况二
print(eval(str6)) #将字符串视为语句,简单地说直接把首尾的引号去掉,就得到了集合

输出结果如下:

{'1', '3', '6', '2', '5', '4'}
{'1', '3', '6', '2', '5', '4'}
{1, 2, 3, 4, 5, 6}

字典

字典转化为列表
有关函数:
dict.values():返回由字典的值组成的列表
dict.keys():返回由字典的键组成的列表
dict.items():返回由字典的键值对组成的列表

#字典转化为列表
dict1 = {'red':1,'blue':2,'green':3};
print(list(dict1.values()))  #值转化为列表
print(list(dict1.keys()))    #键转化为列表
print(list(dict1.items()))   #键值组合转化为列表
print()
print(list(dict1))           #默认将键转化为列表

输出结果如下:

[1, 2, 3]
['red', 'blue', 'green']
[('red', 1), ('blue', 2), ('green', 3)]

['red', 'blue', 'green']

字典转化为字符串
有关函数:
json.dumps():用于将dict类型的数据转成str,以便以str的形式写入json文件
(需要import json才能使用该函数)

#字典转化为字符串
import json
dict1 = {'red':1,'blue':2,'green':3};
#情况一,通用法
print(str(dict1))  #将dict1直接转化为字符串,简单地说直接在字典的首尾加上引号
#情况二,专用法
print(json.dumps(dict1)) #只能用于将dict类型的数据转成str

输出结果如下:

{'red': 1, 'blue': 2, 'green': 3}
{"red": 1, "blue": 2, "green": 3}

字典转化为集合

#字典转化为集合
dict1 = {'red':1,'blue':2,'green':3};
print(set(dict1.values()))  #值转化为集合
print(set(dict1.keys()))    #键转化为集合
print(set(dict1.items()))   #键值组合转化为集合
print()
print(set(dict1))           #默认将键转化为集合

输出结果如下:

{1, 2, 3}
{'green', 'blue', 'red'}
{('green', 3), ('blue', 2), ('red', 1)}

{'green', 'blue', 'red'}

集合

集合转化为列表

#集合转化为列表
str1 = "123456"
set1 = set(str1)
print(list(set1))

输出结果如下:

['5', '2', '1', '6', '4', '3']

集合转化为字符串

#集合转化为字符串
str1 = "123456"
set1 = set(str1)
print(str(set1)) #将set1直接转化为字符串,简单地说直接在集合的首尾加上引号

输出结果如下:

{'5', '2', '1', '6', '4', '3'}

集合转化为字典略,将集合转化为列表,再参考从列表转化为字典的方法即可。

结束语

通过对一系列转化的分析,我们可以得出以下简明的结论:
1、列表是一系列转化的核心,适应情况最多,对数据的处理最有效,所以重点识记列表到其他数据结构的转化以及其他数据结构到列表的转化,就能处理所有的情况。
2、最低要求掌握len(),range(),set(),dict(),list(),tuple(),str(),eval()等函数
dict.values(),dict.keys,dict.items()等方法的使用,进阶要求掌握zip(),split(),string.join(),高级要求掌握json.dumps(),json.loads()以及许多少见方法,那么转化就不成问题了。
3、就算忘记了转化的方法,我们也可以重新创建一个数据结构,把数据重新输入一遍,也不是无失为好办法。

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python编程语言,有四种常用的集合数据类型,它们分别是列表(List)、元组(Tuple)、字典(Dictionary)和集合(Set)。列表是一种有序和可更改的集合,允许重复的成员。元组是一种有序且不可更改的集合,也允许重复的成员。字典是一个无序、可变且有索引的集合,其没有重复的成员。而集合是一种无序和无索引的集合,没有重复的成员。这四种集合数据类型在Python都有着不同的特点和用途。 在Python列表元组字符串都属于序列,它们的元素都可以通过编号进行访问。而字典则属于映射,其元素是以键值对的形式存在的。集合则不属于序列或映射的任何一种,它是一种独立的数据类型,用于存储一组不重复的元素。 总结起来,Python列表(List)、元组(Tuple)、字典(Dictionary)和集合(Set)都是常用的集合数据类型,它们各自有着不同的特点和用途。列表是有序和可更改的集合元组是有序且不可更改的集合字典是无序、可变且有索引的集合集合是无序和无索引的集合。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [浅谈python四种集合数据类型—【列表元组集合字典】](https://blog.csdn.net/QWERTYzxw/article/details/121479048)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [python 元组集合字典](https://download.csdn.net/download/weixin_38603219/13752298)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值