python全栈开发《67.不同数据类型间的转换:列表集合元组的转换》

列表、元组和集合间转换的函数

例1:

go 复制代码
# coding:utf-8

a = [1,2,3]
b = (1,2,3)
c = {1,2,3}
print(tuple(a),set(a))
print(type(tuple(a)),type(set(a)))
print(tuple(a) is b)
print(set(a) is c)

运行结果:

go 复制代码
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/change/bin/python /Users/llq/PycharmProjects/pythonlearn/change/change_list_tuple_set.py 
(1, 2, 3) {1, 2, 3}
<class 'tuple'> <class 'set'>
False
False

进程已结束,退出代码为 0

运行结果显示False,是因为a和b不是相同的内存地址。

例2:

go 复制代码
# coding:utf-8

a = [1,2,3]
b = (1,2,3)
c = {1,2,3}
print(tuple(a),set(a))
print(type(tuple(a)),type(set(a)))
print(tuple(a) is b)
print(set(a) is c)

print(list(b),set(b))
print(list(c),tuple(c))

print(list(a))#运行结果:[1,2,3],没有任何的变化。

print(str(a),type(str(a)))#运行结果:'[1,2,3]'
print(str(b),type(str(b)))
print(str(c),type(str(c)))

print(list(str(a)))
print(tuple(str(b)))
print(set(str(c)))

_a = str(a)
_b = list(_a)
print(_b)

运行结果:

go 复制代码
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/change/bin/python /Users/llq/PycharmProjects/pythonlearn/change/change_list_tuple_set.py 
(1, 2, 3) {1, 2, 3}
<class 'tuple'> <class 'set'>
False
False
[1, 2, 3] {1, 2, 3}
[1, 2, 3] (1, 2, 3)
[1, 2, 3]
[1, 2, 3] <class 'str'>
(1, 2, 3) <class 'str'>
{1, 2, 3} <class 'str'>
['[', '1', ',', ' ', '2', ',', ' ', '3', ']']
('(', '1', ',', ' ', '2', ',', ' ', '3', ')')
{' ', '{', '1', '}', '2', '3', ','}
['[', '1', ',', ' ', '2', ',', ' ', '3', ']']

进程已结束,退出代码为 0

str可以转所有的类型。通过str直接将这三种类型进行转换之后,是一个不可逆的转换。print(list(str(a)))执行的时候,优先执行str函数,再执行list函数。相当于:

go 复制代码
_a = str(a)
_b = list(_a)
print(_b)

总结:如果函数内部又包裹了函数,优先执行内部的函数。一层一层往外去执行。

相关推荐
m0_7369191027 分钟前
C++代码风格检查工具
开发语言·c++·算法
喵手34 分钟前
Python爬虫实战:旅游数据采集实战 - 携程&去哪儿酒店机票价格监控完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集结果csv导出·旅游数据采集·携程/去哪儿酒店机票价格监控
2501_9449347338 分钟前
高职大数据技术专业,CDA和Python认证优先考哪个?
大数据·开发语言·python
小白同学_C41 分钟前
Lab3-page tables && MIT6.1810操作系统工程【持续更新】
linux·c/c++·操作系统os
helloworldandy1 小时前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
黎雁·泠崖1 小时前
【魔法森林冒险】5/14 Allen类(三):任务进度与状态管理
java·开发语言
十年磨一剑~1 小时前
Linux程序接收到sigpipe信号崩溃处理
linux
geshifei1 小时前
Sched ext回调3——select_cpu(linux 6.15.7)
linux·ebpf
yunfuuwqi2 小时前
OpenClaw✅真·喂饭级教程:2026年OpenClaw(原Moltbot)一键部署+接入飞书最佳实践
运维·服务器·网络·人工智能·飞书·京东云
迎仔2 小时前
C-算力中心网络隔离实施方法:怎么搞?
运维·网络