数据容器对比总结

一、特点对比

列表(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']

你可能感兴趣的:(Python,开发语言,python,青少年编程)