Python 集合

Python 集合

在Python中,集合是用于存储数据的容器。Python内置的数据结构包括元组、列表、集合和字典。除了内置数据结构之外,collections类还提供了其他的数据结构。

collections模块中的一些数据结构包括:

  • Counter

  • namedTuple

  • orderedDict

  • defaultDict

  • Deque

  • chainMap

Counter

Counter是一种集合类型,其中元素将存储为字典键,计数将存储为字典值。

每当您想要计算列表中任何项的频率时,传统上会使用一个名为’count’的变量,该变量最初设置为零,并且每次遇到该项时将递增一次。但是,当列表很长时,这不是一种优化的方式。因此,为了防止这种情况发生,并同时计算不同的对象,我们将使用计数器。

示例

在以下示例中,从collections库导入Counter方法。然后创建一个名为’a’的字符串,并将其赋值为”tutorialspoint”。

from collections import Counter
a="tutorialspoint"
result=Counter(a)
print(result)

输出

执行上述程序后,它会打印出字母’a’中每个字母及其出现的次数的字典。

Counter({'t': 3, 'o': 2, 'i': 2, 'u': 1, 'r': 1, 'a': 1, 'l': 1, 's': 1, 'p': 1, 'n': 1

values()函数

The values() 函数将给出与所有值关联的计数列表。

示例

from collections import Counter
a=["apple","mango","cherry","apple","mango","mango"]
result=Counter(a)
print(result.values())

输出

dict_values([2, 3, 1])

most_common()函数

most_common()函数用于返回字典中出现次数最多的项目。需要在括号中指定需要显示的值的数量。

示例

from collections import Counter
a=["apple","mango","cherry","apple","mango","mango"]
result=Counter(a)
print(result.most_common(1))
print(result.most_common(2))

输出

[('mango', 3)]
[('mango', 3), ('apple', 2)]

namedtuple()函数

namedtuple() 允许我们创建具有命名字段的元组。因此,不再使用索引访问项,而是使用点表示法访问它们。

使用索引来访问元组的项可能很困难和混乱。为了避免这种情况,我们可以使用 namedtuple()

就像元组一样,namedtuple也是不可变的。

namedtuple接受两个参数。

示例

在下面的示例中,该程序创建了一个名为“person”的namedtuple,它有四个字段:name、place、sex和age。然后,它创建了person namedtuple的一个实例,名为id,并为每个字段赋值。

from collections import namedtuple
person=namedtuple("person",["name","place","sex","age"])
id=person("kavya","Hyderabad","F","21")
print(id[1])
print(id[3])
print(id.place)
print(id.age)

输出

Hyderabad
21
Hyderabad
21

有序字典

有序字典是一种可以记住其项顺序的字典。它用于保持项添加到列表中的顺序。可以以与普通字典类似的多种方式向有序字典中添加项。

示例

from collections import OrderedDict
d=OrderedDict()
d['sachin']=100
d['Dhoni']=90
d['Rohit']=110
d['Kohli']=95
print(d)

输出

在执行以上代码时,它会生成下面的程序并打印整个字典。

OrderedDict([('sachin', 100), ('Dhoni', 90), ('Rohit', 110), ('Kohli', 95)])

示例

下面的程序从collections模块中导入OrderedDict类,并创建一个包含四个键值对的OrderedDict对象。键分别为’sachin’、’Dhoni’、’Rohit’和’Kohli’,对应的值分别为100、90、110和95。

from collections import OrderedDict
d=OrderedDict([('sachin',100),('Dhoni',90),('Rohit',110),('Kohli',95)])
print(d)
print(d.keys())

输出

OrderedDict([('sachin', 100), ('Dhoni', 90), ('Rohit', 110), ('Kohli', 95)])
odict_keys(['sachin', 'Dhoni', 'Rohit', 'Kohli'])

defaultdict

defaultdict具有字典的所有功能,并且还具有一个额外的特性,即它不会引发KeyError。在字典中,如果您尝试访问或修改不存在的键,您将得到一个KeyError。而defaultdict始终在键不存在时分配一个默认值。因此,defaultdict用于处理缺失的键。

示例

以下程序从collections模块导入defaultdict类。然后,使用defaultdict创建一个新的字典d,并将其设置为接受整数值。将三个键值对添加到字典中,其中’Sachin’的值为90,’Dhoni’的值为80,’Virat’的值为95。

from collections import defaultdict
d=defaultdict(int)
d['Sachin']=90
d['Dhoni']=80
d['Virat']=95
print(d)
print(d['Dhoni'])
print(d['Rohit'])

输出

defaultdict(, {'Sachin': 90, 'Dhoni': 80, 'Virat': 95})
80
0

由于“Rohit”未定义,并且给定的参数为“int”,默认值将为0。

示例

from collections import defaultdict
d=defaultdict(float)
d['Sachin']=90
d['Dhoni']=80
print(d['Rohit'])

输出

0.0

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程