当前位置: 首页 > wzjs >正文

移动端网站怎么做外链北京百度推广排名优化

移动端网站怎么做外链,北京百度推广排名优化,wordpress 极简博客,mlb手表网站文章目录 一、Python 中的集合概述1. 集合的特性 二、集合的创建三、元素的遍历四、集合的运算1. 成员运算2. 二元运算3. 比较运算 五、集合的方法六、不可变集合 一、Python 中的集合概述 在 Python 里,集合(Set)是一种无序且元素唯一的数据…

文章目录

    • 一、Python 中的集合概述
      • 1. 集合的特性
    • 二、集合的创建
    • 三、元素的遍历
    • 四、集合的运算
      • 1. 成员运算
      • 2. 二元运算
      • 3. 比较运算
    • 五、集合的方法
    • 六、不可变集合

一、Python 中的集合概述

在 Python 里,集合(Set)是一种无序且元素唯一的数据结构。它主要用于存储一系列独一无二的元素,并且提供了众多强大的方法来处理这些数据。集合中的元素必须是不可变类型,像整数、浮点数、字符串等都符合要求。从数学角度来看,集合的定义是:“把一定范围内明确可区分的事物当作一个整体,这个整体就是集合,其中的每个事物就是集合的元素。”在 Python 中,集合同样遵循这一定义。

1. 集合的特性

  • 无序性:集合里的元素是没有顺序的,这意味着你无法通过索引来访问它们。集合中的元素在内存中的排列是随机的。
  • 唯一性:集合中的每个元素都是独一无二的,不允许存在重复元素。要是尝试往集合里添加一个已存在的元素,集合不会发生任何改变。添加时,重复元素会被自动忽略。
  • 确定性:集合中的元素必须是可哈希的(hashable),也就是说,在程序运行过程中,这些元素的值不会发生变化。例如,整数、浮点数和字符串都是可哈希的,而列表或字典则不具备这个特性。

Python 中的集合与数学里的集合本质相同,其中“无序性”和“互异性”是其核心特性。与列表相比,列表允许元素重复,并且可以通过索引来访问元素,而集合不允许重复元素,且元素无序。不过,集合凭借其高效的元素查找和去重能力,在数据处理方面优势显著。

二、集合的创建

在 Python 中,创建集合通常有两种方式:使用{}字面量语法或者set()函数。需要注意的是,创建集合时至少要有一个元素,否则创建的将是一个空集合。

set1 = {1, 2, 3, 3, 3, 2}
print(set1)  # 输出:{1, 2, 3}set2 = {'banana', 'pitaya', 'apple', 'apple', 'banana', 'grape'}
print(set2)  # 输出:{'pitaya', 'grape', 'banana', 'apple'}set3 = set('hello')
print(set3)  # 输出:{'l', 'h', 'e', 'o'}set4 = set([1, 2, 2, 3, 3, 3, 2, 1])
print(set4)  # 输出:{1, 2, 3}set5 = {num for num in range(1, 20) if num % 3 == 0 or num % 7 == 0}
print(set5)  # 输出:{3, 6, 7, 9, 12, 14, 15, 18}

这里要特别强调,集合中的元素必须是hashable类型。所谓hashable类型,指的是能够计算出哈希码的数据类型,通常不可变类型都是hashable类型,比如整数(int)、浮点小数(float)、布尔值(bool)、字符串(str)、元组(tuple)等。而可变类型不是hashable类型,因为可变类型无法计算出确定的哈希码,所以不能作为集合中的元素。例如,不能将列表作为集合元素;同理,由于集合本身也是可变类型,所以集合也不能作为集合中的元素。我们可以创建嵌套列表,但不能创建嵌套集合,这在使用集合时需格外留意。

三、元素的遍历

在 Python 中,可以使用len函数来获取集合中元素的数量,但由于集合是无序的,不能通过索引运算来遍历集合中的元素。要遍历集合元素,可以使用for-in循环。

set1 = {'Python', 'C++', 'Java', 'Kotlin', 'Swift'}
for elem in set1:print(elem)
"""
输出:
C++
Java
Swift
Python
Kotlin
"""

四、集合的运算

Python 为集合类型提供了丰富的运算,主要包括成员运算、交集运算、并集运算、差集运算、比较运算(相等性、子集、超集)等。

1. 成员运算

可以使用成员运算符innot in来检查元素是否存在于集合中

set1 = {11, 12, 13, 14, 15}
print(10 in set1)  # False
print(15 in set1)  # True
set2 = {'Python', 'Java', 'C++', 'Swift'}
print('Ruby' in set2)  # False
print('Java' in set2)  # True

2. 二元运算

集合的二元运算主要有交集、并集、差集、对称差等运算,这些运算既可以通过运算符实现,也可以使用集合类型的方法来完成

set1 = {1, 2, 3, 4, 5, 6, 7}
set2 = {2, 4, 6, 8, 10}# 交集:返回两个集合中共同拥有的元素
print(set1 & set2)  # {2, 4, 6}
print(set1.intersection(set2))  # {2, 4, 6}# 并集:返回两个集合中所有不重复的元素
print(set1 | set2)  # {1, 2, 3, 4, 5, 6, 7, 8, 10}
print(set1.union(set2))  # {1, 2, 3, 4, 5, 6, 7, 8, 10}# 差集:返回只存在于第一个集合而不在第二个集合中的元素
print(set1 - set2)  # {1, 3, 5, 7}
print(set1.difference(set2))  # {1, 3, 5, 7}# 对称差:返回两个集合中不重复的元素
print(set1 ^ set2)  # {1, 3, 5, 7, 8, 10}
print(set1.symmetric_difference(set2))  # {1, 3, 5, 7, 8, 10}

3. 比较运算

两个集合可以使用==!=进行相等性判断。如果两个集合中的元素完全相同,==比较的结果为True,否则为False。若集合A的任意一个元素都是集合B的元素,那么集合A称为集合B的子集,即对于 ∀ a ∈ A \small{\forall{a} \in {A}} aA ,均有 a ∈ B \small{{a} \in {B}} aB ,则 A ⊆ B \small{{A} \subseteq {B}} AB ,此时称AB的子集,反过来也可以说BA的超集。如果AB的子集且A不等于B,那么A就是B的真子集。Python 为集合类型提供了判断子集和超集的运算符,即<<=>>=。当然,也可以使用集合类型的方法issubsetissuperset来判断集合之间的关系

set1 = {1, 3, 5}
set2 = {1, 2, 3, 4, 5}
set3 = {5, 4, 3, 2, 1}print(set1 < set2)  # True
print(set1 <= set2)  # True
print(set2 < set3)  # False
print(set2 <= set3)  # True
print(set2 > set1)  # True
print(set2 == set3)  # Trueprint(set1.issubset(set2))  # True
print(set2.issuperset(set1))  # True

五、集合的方法

Python 中的集合是可变类型,可以使用方法向集合中添加或删除元素。

set1 = {1, 10, 100}# 添加元素
set1.add(1000)
set1.add(10000)
print(set1)  # {1, 100, 1000, 10, 10000}# 删除元素
set1.discard(10)
if 100 in set1:set1.remove(100)
print(set1)  # {1, 1000, 10000}# 清空元素
set1.clear()
print(set1)  # set()

需要注意的是,如果使用remove方法删除不存在的元素,会引发KeyError错误。所以在上述代码中,先通过成员运算判断元素是否在集合中。集合类型还有一个pop方法,它可以从集合中随机删除一个元素,并且在删除元素的同时会返回被删除的元素,而removediscard方法只是单纯地删除元素,不会返回被删除的元素。

集合类型还有一个isdisjoint方法,用于判断两个集合是否有相同元素。如果没有相同元素,该方法返回True,否则返回False

set1 = {'Java', 'Python', 'C++', 'Go'}
set2 = {'Go', 'Swift', 'Java', 'Dart'}
set3 = {'HTML', 'CSS', 'JavaScript'}
print(set1.isdisjoint(set2))  # False
print(set1.isdisjoint(set3))  # True

六、不可变集合

Python 中还有一种不可变类型的集合,叫做frozensetsetfrozenset的区别就如同listtuple的区别。frozenset由于是不可变类型,能够计算出哈希码,因此可以作为set中的元素。除了不能添加和删除元素外,frozenset在其他方面与set相同,下面的代码简单展示了frozenset的用法:

fset1 = frozenset({1, 3, 5, 7})
fset2 = frozenset(range(1, 6))
print(fset1)  # frozenset({1, 3, 5, 7})
print(fset2)  # frozenset({1, 2, 3, 4, 5})
print(fset1 & fset2)  # frozenset({1, 3, 5})
print(fset1 | fset2)  # frozenset({1, 2, 3, 4, 5, 7})
print(fset1 - fset2)  # frozenset({7})
print(fset1 < fset2)  # False
http://www.dtcms.com/wzjs/442005.html

相关文章:

  • vs2013网站建设seo论坛站长交流
  • 好的数据库网站手机优化游戏性能的软件
  • wordpress 一键恢复福州seo推广服务
  • 做网站简单的软件seo搜索引擎实战详解
  • 柯桥建设局网站首页网站点击量统计
  • wordpress优化速度怎么seo网站关键词优化
  • 门户网站代做抖音关键词排名系统
  • 什么行业做网站搜索360网址大全
  • 汕头网站建设找千素网星巴克seo网络推广
  • 昆明网站建设方案策划网站片区
  • web网站开发培训班搜索关键词技巧
  • 做企业网站有什么工作内容网上推广平台
  • 网站里面怎么做数字滚动外贸平台排名
  • 晋城手机网站建设桂林seo排名
  • 做seo需要会网站开发吗百度竞价代运营外包
  • 武汉建设网点登封seo公司
  • 河北石家庄网站网络营销渠道名词解释
  • 通过门户网站做单点登录SAP百度收录网站链接入口
  • 专业建设企业网站今天刚刚发生的新闻事故
  • 河南优化公司seo综合优化公司
  • 建立网站站点的过程百度排名优化工具
  • 潍坊网站建设SEO优化百度邮箱登录入口
  • 小程序源码网网盘青岛seo服务哪家好
  • 外贸网站建设方案山西网络推广
  • 网站开发工程师 英文免费推广软件平台
  • 企业网站的建设过程网推是什么意思
  • github 搭建网站成品网站源码的优化技巧
  • 福州网站怎么做seo福建seo快速排名优化
  • 深圳宝安商城网站建设公司淘宝客seo推广教程
  • 武汉建网站百度seo优化技术