Python 集合

Python 集合

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

‘collections’模块中的一些数据结构-

  • Counter计数器

  • namedTuple命名元组

  • orderedDict有序字典

  • defaultDict默认字典

  • Deque双端队列

  • chainMap链式映射

Counter计数器

这是一种集合类型,其中元素将存储为字典键(keys),并将计数存储为字典值(values)。

如果要计算列表中任何项目的频率,传统上会使用一个名为“ count”的变量,该变量最初将被设置为零,并且每次遇到该项目时都会增加一个。这在列表很长时不是最优化的方式。因此,为了同时计数不同的对象,我们将使用计数器。

示例

在以下示例中,导入计数器方法来自collections库。 然后创建一个名为“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() 函数

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()function)

namedtuple()将允许我们创建具有命名字段的元组。因此,我们可以使用点符号访问它们而不是使用索引访问项目。

使用索引访问元组项可能很困难和令人困惑。为了防止这种情况,我们可以使用namedtuple()

与元组一样,命名元组也是不可变的。

namedtuple需要两个参数。

示例

在以下示例中,此程序创建了一个名为“person”的namedtuple,并创建了一个名为id的person namedtuple实例,该实例具有各个字段的值。

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

OrderedDict

OrderedDict是一种可以记住其项目顺序的字典。它用于保留将添加到列表中的项目的顺序。与普通字典相似,可以以各种方式将项目添加到OrderedDict中。

示例

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Python 教程