python快速入门学习笔记十二:数据容器 通用操作与总结

  • 原创
  • 作者:程序员三丰
  • 发布时间:2026-03-23 10:49
  • 浏览量:13
python入门第十二课,主要是对数据容器的做个总结,以及相互转换的通用操作函数的学习。

通用内置函数

在之前数据容器系列文章中已经介绍过下面图中常用函数,不过还是要根据实际应用场景选择合适的函数使用:

下面继续介绍一些数据容器的通用操作,主要是类型之间的相互转换。

list函数

list函数有如下两个作用:

  • 定义空列表
res5 = list()
print(type(res5), res5) # <class 'list'> []
  • 将可迭代对象转为列表
data_range = range(5) # <class 'range'> range(0, 5)
data_str = '欢迎大家都来学Python' # <class 'str'>
data_set = {10, 20, 30, 40, 50} # <class 'set'>
data_dict = { '张三': 75, '李四': 60, '王五': 85 } # <class 'dict'>


res1 = list(data_range)
print(type(res1), res1) # <class 'list'> [0, 1, 2, 3, 4]

res2 = list(data_str)
print(type(res2), res2) # <class 'list'> ['欢', '迎', '大', '家', '都', '来', '学', 'P', 'y', 't', 'h', 'o', 'n']

res3 = list(data_set)
print(type(res3), res3) # <class 'list'> [50, 20, 40, 10, 30]

res4 = list(data_dict.items())
print(type(res4), res4) # <class 'list'> [('张三', 75), ('李四', 60), ('王五', 85)]

tuple函数

tuple函数有如下两个作用:

  • 定义空元组
res5 = tuple()
print(type(res5), res5) # <class 'tuple'> ()
  • 将可迭代对象转为元组
data_range = range(5)  # <class 'range'> range(0, 5)
data_str = '欢迎大家都来学Python'  # <class 'str'>
data_set = {10, 20, 30, 40, 50}  # <class 'set'>
data_dict = {'张三': 75, '李四': 60, '王五': 85}  # <class 'dict'>

res1 = tuple(data_range)
print(type(res1), res1) # <class 'tuple'> (0, 1, 2, 3, 4)

res2 = tuple(data_str)
print(type(res2), res2) # <class 'tuple'> ('欢', '迎', '大', '家', '都', '来', '学', 'P', 'y', 't', 'h', 'o', 'n')

res3 = tuple(data_set)
print(type(res3), res3) # <class 'tuple'> (50, 20, 40, 10, 30)

res4 = tuple(data_dict)
print(type(res4), res4) # <class 'tuple'> ('张三', '李四', '王五')

set函数

set函数有如下两个作用:

  • 定义空集合
res5 = set()
print(type(res5), res5) # <class 'set'> set()
  • 将可迭代对象转换为集合
data_range = range(5)  # <class 'range'> range(0, 5)
data_str = '欢迎大家都来学Python'  # <class 'str'>
data_list = [10, 20, 30, 40, 50]  # <class 'list'>
data_dict = {'张三': 75, '李四': 60, '王五': 85}  # <class 'dict'>

res1 = set(data_range)
print(type(res1), res1) # <class 'set'> {0, 1, 2, 3, 4}

res2 = set(data_str)
print(type(res2), res2) # <class 'set'> {'n', 't', '都', '迎', '学', '欢', 'P', 'o', '大', '来', 'y', '家', 'h'}

res3 = set(data_list)
print(type(res3), res3) # <class 'set'> {40, 10, 50, 20, 30}

res4 = set(data_dict)
print(type(res4), res4) # <class 'set'> {'王五', '李四', '张三'}

str函数

str函数有如下两个作用:

  • 定义空字符串
res8 = str()
print(type(res8), res8) # <class 'str'>
  • 将可迭代对象转换为字符串
data_range = range(5)  # <class 'range'> range(0, 5)
data_list = [10, 20, 30, 40, 50]  # <class 'list'>
data_set = {10, 20, 30, 40, 50} # <class 'set'>
data_dict = { '张三': 75, '李四': 60, '王五': 85 } # <class 'dict'>
data_bool = False # <class 'bool'>
data_none = None # <class 'NoneType'>
data_int = 100 # <class 'int'>

res1 = str(data_range)
print(type(res1), res1) # <class 'str'> range(0, 5)

res2 = str(data_list)
print(type(res2), res2) # <class 'str'> [10, 20, 30, 40, 50]

res3 = str(data_set)
print(type(res3), res3) # <class 'str'> {50, 20, 40, 10, 30}

res4 = str(data_dict)
print(type(res4), res4) #<class 'str'> {'张三': 75, '李四': 60, '王五': 85}

res5 = str(data_bool)
print(type(res5), res5) # <class 'str'> False

res6 = str(data_none)
print(type(res6), res6) # <class 'str'> None

res7 = str(data_int)
print(type(res7), res7) # <class 'str'> 100

dict函数

dict函数有如下两个作用:

  • 定义空字典
res5 = dict()
print(type(res5), res5) # <class 'dict'> {}
  • 将可迭代对象转换为字典(注意:交给dict函数的内容必须是键值对才可以,否则就会报错)
data1 = {'张三': 75, '李四': 60, '王五':85} # <class 'dict'>
data2 = [('张三', 75), ('李四', 60), ('王五', 85)] # <class 'list'>
data3 = (('张三', 75), ('李四', 60), ('王五', 85)) # <class 'tuple'>
data4 = {('张三', 75), ('李四', 60), ('王五', 85)} # <class 'set'>

res1 = dict(data1)
print(type(res1), res1) # <class 'dict'> {'张三': 75, '李四': 60, '王五': 85}

res2 = dict(data2)
print(type(res2), res2) # <class 'dict'> {'张三': 75, '李四': 60, '王五': 85}

res3 = dict(data3)
print(type(res3), res3) # <class 'dict'> {'张三': 75, '李四': 60, '王五': 85}

res4 = dict(data4)
print(type(res4), res4) # <class 'dict'> {'李四': 60, '张三': 75, '王五': 85}

成员运算符 in / not in

所有数据容器都支持成员运算符in / not in,它的作用是:判断某个元素是否在于容器中。

data_list = [10, 20, 30, 40, 50]  # <class 'list'>
data_tuple = (10, 20, 30, 40, 50)  # <class 'tuple'>
data_set = {10, 20, 30, 40, 50}  # <class 'set'>
data_dict = {'张三': 75, '李四': 60, '王五': 85}  # <class 'dict'>
data_str = '欢迎大家都来学Python'  # <class 'str'>

print('100' not in data_list) # True
print('100' not in data_tuple) # True
print('100' not in data_set) # True
print('赵六' not in data_dict) # True
print('Python5' not in data_str) # True
print()
print(10 in data_list) # True
print(10 in data_tuple) # True
print(10 in data_set) # True
print('王五' in data_dict) # True
print('Py' in data_str) # True

数据容器总结

下面对数据容器从以下维度进行对比总结:

有序 VS 无序

  • 有序:列表(list)、元组(tuple)、字符串(str)——元素有顺序,可通过下标访问元素。
  • 无序:集合(set)、字典(dict)——元素没有固定位置,不能用下标访问。

是否可修改

  • 可变:列表(list)、集合(set)、字典(dict)——可以对内容进行增、删、改操作。
  • 不可变:元组(tuple)、字符串(str)——内容固定,创建后无法修改。

是否可重复

  • 可重复:列表(list)、元组(tuple)、字符串(str)
  • 不可重复:集合(set)、字典(dict,字典的key是唯一的,但value是可重复的)。

至此,数据容器就学习完了,收获满满,下一步开始学习面向对象。

声明:本文为原创文章,51blog.xyz和作者拥有版权,如需转载,请注明来源于51blog.xyz并保留原文链接:https://www.51blog.xyz/article/112.html

文章归档

推荐文章

buildadmin logo
Thinkphp8 Vue3 Element PLus TypeScript Vite Pinia

🔥BuildAdmin是一个永久免费开源,无需授权即可商业使用,且使用了流行技术栈快速创建商业级后台管理系统。

热门标签

PHP ThinkPHP ThinkPHP5.1 Go Mysql Mysql5.7 Redis Linux CentOS7 Git HTML CSS CSS3 Javascript JQuery Vue LayUI VMware Uniapp 微信小程序 docker wiki Confluence7 学习笔记 uView ES6 Ant Design Pro of Vue React ThinkPHP6.0 chrome 扩展 翻译工具 Nuxt SSR 服务端渲染 scrollreveal.js ThinkPHP8.0 Mac webman 跨域CORS vscode GitHub ECharts Canvas vue3 three.js 微信支付 PHP全栈开发 Python AI 人工智能