数据容器对比总结

一、特点对比

列表(list)元组(tuple)字符串(str)集合(set)字典(dict)
元素数量支持多个支持多个支持多个支持多个支持多个
元素类型任意类型任意类型仅字符任意类型键值对
下标索引支持支持支持不支持不支持
重复元素支持支持支持不支持不支持
可修改性支持不支持不支持支持支持
数据有序

二、应用场景对比

数据容器应用场景
列表(list)一批数据,可修改、可重复的存储场景
元组(tuple)一批数据,不可修改、可重复的存储场景
字符串(str)一串字符串的存储场景
集合(set)一批数据,去重存储场景
字典(dict)一批数据,可用Key检索Value的存储场景

三、通用操作

3.1遍历

在遍历上:

  • 5类数据容器都支持for循环遍历
  • 列表、元组、字符串支持while循环,集合、字典不支持(不支持下标索引)

3.2统计功能

3.2.1统计容器的元素个数

语法:len(容器)

具体应用:

my_list=['加菲猫','欧迪','乔恩']
my_tuple=(1,2,3,4,5)
my_str='my heart go on'
my_set={'a','加菲猫','s',5,0,'加菲猫'}
my_dict={'静夜思':'李白','江雪':'柳宗元','征人怨':'柳中庸','夜雨寄北':'李商隐'}

print("数组内元素数量为:%d"%len(my_list))
print("元组内元素数量为:%d"%len(my_tuple))
print("字符串内元素数量为:%d"%len(my_str))
print("集合内元素数量为:%d"%len(my_set))
print("字典内元素数量为:%d"%len(my_dict))

输出:

数组内元素数量为:3
元组内元素数量为:5
字符串内元素数量为:14
集合内元素数量为:5
字典内元素数量为:4

3.2.2统计容器的最大元素

语法:max(容器)

具体应用:

my_list=[8,2,5,7,2]
my_tuple=(1,2,3,4,5)
my_str='my heart go on'
my_set={7,3,5,6,1,4}
my_dict={'key1':'a','key2':'b','key3':'c','key4':'d'}

print(f"数组内最大元素为:{max(my_list)}")
print(f"元组内最大元素为:{max(my_tuple)}")
print(f"字符串最大元素量:{max(my_str)}")
print(f"集合内最大元素为:{max(my_set)}")
print(f"字典内最大元素为:{max(my_dict)}")

输出:

数组内最大元素为:8
元组内最大元素为:5
字符串内最大元素为:y
集合内最大元素为:7
字典内最大元素为:key4

3.2.3统计容器的最小元素

语法:min(容器)

具体应用:

my_list=[8,2,5,7,2]
my_tuple=(1,2,3,4,5)
my_str='my heart go on'
my_set={7,3,5,6,1,4}
my_dict={'key1':'a','key2':'b','key3':'c','key4':'d'}

print(f"数组内最小元素为:{min(my_list)}")
print(f"元组内最小元素为:{min(my_tuple)}")
print(f"字符串内最小元素为:{min(my_str)}")
print(f"集合内最小元素为:{min(my_set)}")
print(f"字典内最小元素为:{min(my_dict)}")

输出:

数组内最小元素为:2
元组内最小元素为:1
字符串内最小元素为: 
集合内最小元素为:1
字典内最小元素为:key1

3.3转换功能

语法:list(容器)         功能:将给定容器转换为列表

语法:tuple(容器)      功能:将给定容器转换为元组

语法:str(容器)          功能: 将给定容器转换为字符串

语法:set(容器)         功能: 将给定容器转换为集合

字典元素是键值对类型,不支持随意转换

具体应用:

my_tuple=(1,2,3,4,5)
my_str='my heart go on'
my_set={7,3,5,6,1,4}
my_dict={'key1':'a','key2':'b','key3':'c','key4':'d'}

print(f"数组转数组的结果为:{list(my_list)}")
print(f"元组转数组的结果为:{list(my_tuple)}")
print(f"字符串转数组的结果为:{list(my_str)}")
print(f"集合转数组的结果为:{list(my_set)}")
print(f"字典转数组的结果为:{list(my_dict)}")

print(f"数组转元组的结果为:{tuple(my_list)}")
print(f"元组转元组的结果为:{tuple(my_tuple)}")
print(f"字符串转元组的结果为:{tuple(my_str)}")
print(f"集合转元组的结果为:{tuple(my_set)}")
print(f"字典转元组的结果为:{tuple(my_dict)}")

print(f"数组转字符串的结果为:{str(my_list)}")
print(f"元组转字符串的结果为:{str(my_tuple)}")
print(f"字符串转字符串的结果为:{str(my_str)}")
print(f"集合转字符串的结果为:{str(my_set)}")
print(f"字典转字符串的结果为:{str(my_dict)}")

print(f"数组转集合的结果为:{set(my_list)}")
print(f"元组转集合的结果为:{set(my_tuple)}")
print(f"字符串转集合的结果为:{set(my_str)}")
print(f"集合转集合的结果为:{set(my_set)}")
print(f"字典转集合的结果为:{set(my_dict)}")

输出:

数组转数组的结果为:[8, 2, 5, 7, 2]
元组转数组的结果为:[1, 2, 3, 4, 5]
字符串转数组的结果为:['m', 'y', ' ', 'h', 'e', 'a', 'r', 't', ' ', 'g', 'o', ' ', 'o', 'n']
集合转数组的结果为:[1, 3, 4, 5, 6, 7]
字典转数组的结果为:['key1', 'key2', 'key3', 'key4']


数组转元组的结果为:(8, 2, 5, 7, 2)
元组转元组的结果为:(1, 2, 3, 4, 5)
字符串转元组的结果为:('m', 'y', ' ', 'h', 'e', 'a', 'r', 't', ' ', 'g', 'o', ' ', 'o', 'n')
集合转元组的结果为:(1, 3, 4, 5, 6, 7)
字典转元组的结果为:('key1', 'key2', 'key3', 'key4')


数组转字符串的结果为:[8, 2, 5, 7, 2]
元组转字符串的结果为:(1, 2, 3, 4, 5)
字符串转字符串的结果为:my heart go on
集合转字符串的结果为:{1, 3, 4, 5, 6, 7}
字典转字符串的结果为:{'key1': 'a', 'key2': 'b', 'key3': 'c', 'key4': 'd'}


数组转集合的结果为:{8, 2, 5, 7}
元组转集合的结果为:{1, 2, 3, 4, 5}
字符串转集合的结果为:{'h', 'g', 'o', 'n', 'r', 'e', 'm', ' ', 'y', 'a', 't'}
集合转集合的结果为:{1, 3, 4, 5, 6, 7}
字典转集合的结果为:{'key3', 'key2', 'key4', 'key1'}

注意:字典转换成数组、元组、集合时,value值会被抛弃。

3.4排序功能

语法:sorted(容器, [reverse=True]) (True升序False降序)

功能:将给定容器进行排序 (排序后都会得到列表(list)对象)

具体应用:

my_list=[8,2,5,7,2]
my_tuple=(1,2,3,4,5)
my_str='my heart go on'
my_set={7,3,5,6,1,4}
my_dict={'key1':'a','key2':'b','key3':'c','key4':'d'}

print(f"数组的升序排序结果:{sorted(my_list)}")
print(f"元组的升序排序结果:{sorted(my_tuple)}")
print(f"字符串的升序排序结果:{sorted(my_str)}")
print(f"集合的升序排序结果:{sorted(my_set)}")
print(f"字典的升序排序结果:{sorted(my_dict)}")

输出:

数组的升序排序结果:[2, 2, 5, 7, 8]
元组的升序排序结果:[1, 2, 3, 4, 5]
字符串的升序排序结果:[' ', ' ', ' ', 'a', 'e', 'g', 'h', 'm', 'n', 'o', 'o', 'r', 't', 'y']
集合的升序排序结果:[1, 3, 4, 5, 6, 7]
字典的升序排序结果:['key1', 'key2', 'key3', 'key4']

注意:在排序过程中,字典的value值会被抛弃。

如果我们想得到降序排序怎么做呢?需要添加参数[reverse=True],语法为sorted(容器, reverse=True),reverse有反转的意思,reverse=True表示把升序结果进行反转。

具体应用:

my_list=[8,2,5,7,2]
my_tuple=(1,2,3,4,5)
my_str='my heart go on'
my_set={7,3,5,6,1,4}
my_dict={'key1':'a','key2':'b','key3':'c','key4':'d'}

print(f"数组的升序排序结果:{sorted(my_list,reverse=True)}")
print(f"元组的升序排序结果:{sorted(my_tuple,reverse=True)}")
print(f"字符串的升序排序结果:{sorted(my_str,reverse=True)}")
print(f"集合的升序排序结果:{sorted(my_set,reverse=True)}")
print(f"字典的升序排序结果:{sorted(my_dict,reverse=True)}")

输出:

数组的升序排序结果:[8, 7, 5, 2, 2]
元组的升序排序结果:[5, 4, 3, 2, 1]
字符串的升序排序结果:['y', 't', 'r', 'o', 'o', 'n', 'm', 'h', 'g', 'e', 'a', ' ', ' ', ' ']
集合的升序排序结果:[7, 6, 5, 4, 3, 1]
字典的升序排序结果:['key4', 'key3', 'key2', 'key1']

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值