ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

1.5、Python数据结构——集合、推导式

2022-01-16 12:33:13  阅读:116  来源: 互联网

标签:1.5 推导 Python 元素 number 列表 print 集合 数据结构


目录

1、集合

1.1、定义集合

1.2、在集合中添加元素,add()

1.3、删除集合中的元素,remove()

1.4、集合操作

2、推导式

2.1、列表推导式

2.2、字典推导式

2.3、集合推导式


1、集合

Python中有一种内置类型叫做集合(Set),它是一种非常有用的数据结构,它与列表(List)的行为类似,唯一区别在于集合不会包含重复的值。

1.1、定义集合

empty=set()        #定义空集合,空集合不能使用{}定义
number={1,2,3}
mix=set([1,"你好",321,"hello"])
print("空集合",empty)
print("数字集合",number)
print("混合集合",mix)
#执行结果
空集合 set()
数字集合 {1, 2, 3}
混合集合 {321, 1, 'hello', '你好'}

注意:

如果是空集合(不包含任何元素的集合),必须使用set()定义;

如果包含元素,则可以使用花括号“{}”定义集合,也可以使用set加上列表来定义。

1.2、在集合中添加元素,add()

number={1,2,3,4}
print(number)
number.add(5)
print(number)
number.add("hello")
print(number)
number.add(5)     #与集合中已有元素重复,无法添加
print(number)
#执行结果
{1, 2, 3, 4}
{1, 2, 3, 4, 5}
{1, 2, 3, 4, 5, 'hello'}
{1, 2, 3, 4, 5, 'hello'}  #第二个5没有添加进来

add方法在添加新元素时,如果新的元素与原来的元素没有重复,则可以正常添加进集合,如果新的元素与原集合中的元素相同,则不会添加新的元素。这样保证了集合元素的唯一性。

1.3、删除集合中的元素,remove()

number={1,2,3,4,5}
print(number)
number.remove(3)
print(number)
number.remove(4)
print(number)
#执行结果
{1, 2, 3, 4, 5}
{1, 2, 4, 5}
{1, 2, 5}

注意:remove方法不能用于不存在的元素,如果元素不存在,Python解释器将会输出错误信息。

1.4、集合操作

Python中的集合可以看成是数学意义上的无序和无重复元素的集合,并且Python自带的集合类型支持很多数学意义上的集合操作,例如:

n1={1,3,5,7}
n2={2,5,1,6,8}
print("n1",n1)
print("n2",n2)
print("交集",n1 & n2)
print("并集",n1 | n2)
print("差集",n1 - n2)
print("对称差集",n1 ^ n2)
#执行结果
n1 {1, 3, 5, 7}
n2 {1, 2, 5, 6, 8}
交集 {1, 5}
并集 {1, 2, 3, 5, 6, 7, 8}
差集 {3, 7}                  
对称差集 {2, 3, 6, 7, 8}     # 两个集合中所有不相同的元素

2、推导式

Python支持三种推导式(或者称解析式),分别对应列表、字典和集合。它能够以非常自然、简单的方式构建列表、字典或集合,就像数学家做的那样。

2.1、列表推导式

列表推导式的语法:用中括号括起来,中间使用for语句,后面跟着if语句用作判断,满足条件的传到for语句前面用作构建的列表。

a1=[x for x in range(5)]
print(a1)
odd=[x for x in range(10) if x%2 !=0]
print(odd)
#执行结果
[0, 1, 2, 3, 4]
[1, 3, 5, 7, 9]

列表推导式最擅长的方式就是对整个列表分别做相同的操作,并且返回得到一个新的列表。

2.2、字典推导式

字典推导式和列表推导式类似,字典的元素是成对出现的,所以推导式定义的时候也是成对生成键值对。例如:

d1={n:n**2 for n in range(5)}
print(d1)
d2={v:k for k,v in d1.items()}
print(d2)
#执行结果
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
{0: 0, 1: 1, 4: 2, 9: 3, 16: 4}

2.3、集合推导式

集合推导式基本上和列表推导式没什么区别,但是集合推导式会帮我们去除重复的元素,并且不适用中括号,而是使用花括号。例如:

s1={i**2 for i in [-5,-2,-1,1,2,3,]}
print(s1)
#执行结果
{25, 4, 1, 9}

标签:1.5,推导,Python,元素,number,列表,print,集合,数据结构
来源: https://blog.csdn.net/zhangduang_KHKW/article/details/122520469

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有