Python入门教程+项目实战-13.3节-集合的快速查找

news/2024/10/31 7:30:14/

目录

13.3.1 键的输出顺序

13.4.2 键的数据类型

13.4.3 集合的快速查找

13.4.4 知识要点

13.4.5 系统学习python


13.3.1 键的输出顺序

集合类型的底层实现基于哈希表,键的输出顺序取决于键在哈希表中的存储顺序。

对哈希表结构不是很熟悉的同学,可以复习12.4.4节中的内容。

代码实例:

# __desc__ = 测试集合的键的输出顺序stars = {"陈法蓉", "陈德蓉", "陈宝莲"}for star in stars:print(_)"""
输出为:
"陈德蓉"
"陈法蓉"
"陈宝莲"
"""

从程序的输出可以分析出,集合中的键的输出顺序不一定是定义或插入时的排列顺序。同学们可以对比下字典的键的输出顺序,在Python 3.6以后,字典中的键按其插入的顺序进行输出:

代码实例:

# __desc__ = 测试字典的键的输出顺序stars = {"陈法蓉": 0, "陈德蓉": 0, "陈宝莲": 0}for star in stars:print(_)"""
输出为:
"陈法蓉"
"陈德蓉"
"陈宝莲"
"""

从程序的输出可以分析出,字典中的键的输出顺序与键的排列顺序一致。

13.4.2 键的数据类型

集合的键的数据类型同字典中的键的数据类型,必须是静态的、可哈希的数据类型。

迄今为止学过的静态的数据类型有:简单数据类型,字符串,元组。

为什么键必须是静态的数据类型?

Python中的集合类型也是基于哈希表结构,如果键名是静态的,不可变的,那么就能保证通过哈希函数计算时,得到的都是相同的哈希值。如果键名是可变的数据类型,意味着在这个数据类型的生命周期内,它的值是变化的,就不能保证计算得到的是相同的哈希值,所以键名必须是静态的数据类型,以保证其哈希值的唯一性。

13.4.3 集合的快速查找

集合类型基于哈希表结构,所以也能进行快速的查找。但与字典类型不同的是,集合中只有键,没有键值。集合类型适用于这样的应用场景:只用来进行快速查找,而无需关心键所对应的键值。当我们还需要获取键值时,应当使用字典这种数据结构。

代码实例:

# __desc__ = 通过字典和集合来进行快速查找# 定义一个IP地址黑名单
blacklist = {"120.239.72.105", "120.239.72.108"}remote_addr = "120.239.72.104"if remote_addr not in blacklist:# 如果用户地址不在黑名单中,则允许访问pass
else:# 否则定义禁止用户访问的逻辑pass# 如果我们需要统计用户访问的次数,那么应当使用字典statistics = {}
if remote_addr in statistics:# 该用户每访问一次,就加一statistics[remotr_addr] +=1
else:# 用户第一次访问时,设置初值为1statistics[remotr_addr] =1

13.4.4 知识要点

(1) 集合类型的底层实现基于哈希表,键的输出顺序,取决于键在哈希表中的存储顺序

(2) 集合中的键的数据类型必须是静态的数据类型,迄今为止学过的静态的数据类型有:简单数据类型,字符串,元组。

(3) 集合类型与字典类型一样,是基于哈希表实现的数据结构。

 

13.4.5 系统学习python

 薯条老师简介:资深技术专家,技术作家,著有《Python零基础入门指南》,《Java零基础入门指南》等技术教程。薯条老师的博客:http://www.chipscoco.com, 系统学习后端,爬虫,数据分析,机器学习、量化投资。

 


http://www.ppmy.cn/news/292760.html

相关文章

为啥无线随身设备显示无服务器,随身WiFi怎么用_移动wifi怎么用【图文】-太平洋IT百科...

随身wifi怎么用 随身wifi就是可以随身携带的wifi信号,通过无线移动路由器和无线运营商提供的无线上网芯片(sim卡),组成一个可以移动的wifi接收发射信号源。随身wifi怎么用?通过此套设备,可以连接到2.5G、3G或者4G网络上&#xff0…

手机做web服务器 无限流量,无限流量卡和手机随身无线wifi,你选择哪一个?

随着科技水平的发展,人们的网络需求日益倍增。现在市场上最多的产品是无限流量卡和手机随身无线wifi。而运营商推出的流量卡套餐又各不相同,有的人又有选择恐惧症,进退两难啊,但是有一点小编是知道的,低消费、又实惠、…

如何利用wifi盈利

一只小蝴蝶的翅膀挥动,可能即将扇起一场狂野飓风。这只蝴蝶,就是WiFi无线网络接入。目前,BAT三大巨头已经在这领域争来斗去,百度推出了小度WiFi,阿里与树熊合作,360也发布了随身WiFi。但上述对无线上网入口…

WiFi万能钥匙 v4.3.50

类型:系统工具 版本:v4.3.50 大小:27.5M 更新:2019/2/28 语言:简体 等级: 平台:安卓, 4.0以上 厂商:WiFi万能钥匙 下载地址: WiFi万能钥匙 v4.3.50(1&#xf…

Windows 7/8 创建WIFI热点

问题描述:很多人(特别是中国的大学生)都拥有一台联网的笔记本电脑,而手机使用的却是电信运营商提供的限制数量和速度的GPRS。 很多人不敢想象:联网的笔记本电脑能够将其流量以WiFi的形式共享出来供其它设备——例如Pad…

机上WiFi浪潮席卷而至

现代人已经越来越离不开智能手机和离不开上网了,在酒店、咖啡店、机场和其他公共场所,提供免费WiFi似乎已经成为基本服务。但如何度过飞机上漫长的时间曾经是众多“空中飞人”心中的痛,但随着无线通信技术的快速发展,机上WiFi服务…

aardio - 【库】authorize 软件授权管理

使用授权码或授权文件进行校验,以确定程序代码是否需要向下执行。 库下载地址: http://chengxu.online → aardio资源下载 → authorize.rar 示例执行效果: import win.ui; /*DSG{{*/ var winform win.form(text"aardio form"…

wifi共享精灵 强大的网络伴侣

Wifi共享精灵是什么?我想暂时我还无法形容它的强大,或许有些朋友还不了解wifi共享精灵是怎样一款神器,今天,小编就为大家介绍一下这款神奇的软件吧。 Wifi共享精灵是一款基于PC无线网卡应用的无线共享的软件。通过一键设置,将笔…