Python集合
时间:2020-02-23 14:42:31 来源:igfitidea点击:
Python集合模块附带了许多容器数据类型。
这些数据类型具有不同的功能,我们将在本文中学习。
让我们研究一下python集合模块,以及最重要且使用最广泛的数据类型。
Python集合模块
我们将在python集合模块中研究的集合是:
- OrderedDict
- defaultdict
- counter
- namedtuple
- deque
1. OrderedDict
使用OrderedDict
,当将键和值插入字典时,插入顺序得以保持。
如果我们尝试再次插入密钥,这将覆盖该密钥的先前值。
这是一个示例程序,用于演示OrderedDict
的用法:
from collections import OrderedDict roll_no = OrderedDict([ (11, 'Shubham'), (9, 'hyman'), (17, 'theitroad'), ]) for key, value in roll_no.items(): print(key, value)
让我们看一下该程序的输出:请注意,输出顺序与插入顺序完全相同。
2.defaultdict
默认词典可以包含重复的键。
使用默认字典的好处是我们可以收集属于同一密钥的项目。
让我们看一下演示相同内容的代码段:
from collections import defaultdict marks = [ ('Shubham', 89), ('hyman', 92), ('theitroad', 99), ('theitroad', 98) ] dict_marks = defaultdict(list) for key, value in marks: dict_marks[key].append(value) print(list(dict_marks.items()))
让我们看一下该程序的输出:两次使用了键" theitroad",并且在打印字典后就收集了相同的值。
3.counter
Counter集合使我们能够对所有使用键插入到集合中的项目进行计数。
这是一个示例程序,说明其工作方式:
from collections import Counter marks_list = [ ('Shubham', 89), ('hyman', 92), ('theitroad', 99), ('theitroad', 98) ] count = Counter(name for name, marks in marks_list) print(count)
让我们看一下该程序的输出:这样,我们就可以计算出密钥在列表中出现的次数。
4.命名元组
众所周知,Python元组是不可变的列表。
这意味着不能给元组中存在区域的键赋值。
首先,让我们看看如何用Python制作元组:
shubham = ('Shubham', 23, 'M') print(shubham)
让我们看一下该程序的输出:通过为该元组中存在的所有值分配名称,可以将该元组转换为命名元组。
这也将为当前数据提供更多上下文:
import collections User = collections.namedtuple('User', 'name age gender') shubham = User(name='Shubham', age=23, gender='M') print(shubham) print('Name of User: {0}'.format(shubham.name))
该程序的输出为:了解如何使用提供的名称访问命名元组的属性。
另外,请记住,键名不能是Python关键字。
5.双端队列
双端队列是双端队列,它允许我们从两端添加和删除元素。
这增强了堆栈或者队列的功能。
这是一个示例程序:
import collections name = collections.deque('Shubham') print('Deque :', name) print('Queue Length:', len(name)) print('Left part :', name[0]) print('Right part :', name[-1]) name.remove('b') print('remove(b):', name)
让我们看一下该程序的输出:因此,元素的出队是自动完成的。
我们还可以在特定端的出队中插入元素。
:
import collections name = collections.deque('Shubham') print('Deque :', name) name.extendleft('...') name.append('-') print('Deque :', name)