Python|函数list和set

简介: Python|函数list和set

问题描述

最近看到一个比较有意思的代码如下,可以看到当我们使用花括号对a里的每个值进行加一时,输出的却是花括号,当我们使用中括号时输出的就是中括号,这到底是什么呢?

>>>  a=[1,2,3,4]

>>> a={x+1  for x in a}

>>> print(a)

{2, 3, 4, 5}

>>> a=[x+1  for x in a]

>>>  print(a)

[3, 4, 5, 6]

解决方案

我们先来看看这两种括号的意义:[]代表list列表数据类型,列表是一种可变的序列。{}花括号代表dict字典数据类型,字典由键对值组。冒号分开键和值,逗号分开组。但是在这里花括号里面并别用键值,其实这是一个没有value的dict:set,set和key类似,但是set中不储存value,set中没有重复的key(经过实验dict中也没有重复的key,如果初始化时出现重复的key,前面的key和value会被后面的覆盖)。创建一个set需要提供一个list作为输入集合:

>>>  s=set([1,2.3])

>>>  s

{1, 2.3}

如果传入重复的key值,set会自动清楚重复元素:

>>> a=[1,1,1,1]

>>>  a={x+1 for x in a}

>>>  a

{2}

接下来我们来介绍set的操作函数

增加:add(key),可增加相同元素,但没有什么效果。

删除:remove(key)

>>>  a.remove(2)

>>>  a

set()

Set还可以看作时是数学上无序无重复的集合,因此可以做交、并等运算

>>>  s1 = set([1,2,3])

>>>  s2 = set([3,4,5])

>>>  s1&s2

{3}

>>> s1:s2

{1,2,3,4,5}

结语

set和list是Python常用的结构类型,List可以看成是一个数组,而set就是数学上的集合,它们搭配起来还有一些妙用:

去重

>>>line = ['a','b','a']

>>>  list(set(line))

['a', 'b']

提取两个序列中出现过的非重复元素

>>>  line1=['a','b','a']

>>> line2=['a','c']

>>>  line=line1+line2

>>>  list(set(line))

['a', 'c', 'b']

目录
相关文章
|
1天前
|
存储 Python
【Python 基础】解释reduce函数的工作原理
【5月更文挑战第6天】【Python 基础】解释reduce函数的工作原理
|
1天前
|
Python
【Python 基础】解释map函数的工作原理
【5月更文挑战第6天】【Python 基础】解释map函数的工作原理
|
1天前
|
索引 Python
【Python 基础】解释Range函数
【5月更文挑战第6天】【Python 基础】解释Range函数
|
1天前
|
Python
【Python 基础】列表(list)和元组(tuple)有什么区别?
【5月更文挑战第6天】【Python 基础】列表(list)和元组(tuple)有什么区别?
|
1天前
|
Python
Python中的匿名函数,即lambda函数
【5月更文挑战第6天】Python中的匿名函数,即lambda函数,用于简洁地定义小型函数,无需`def`关键字。示例:`double = lambda x: x * 2`,可将5加倍。常用于排序(自定义比较)、映射(如求平方)和过滤列表,以及作回调函数。然而,它们不适用于多行代码或复杂逻辑,此时需用常规函数。
4 0
|
5天前
|
NoSQL Serverless Python
在Python的Pandas中,可以通过直接赋值或使用apply函数在DataFrame添加新列。
在Python的Pandas中,可以通过直接赋值或使用apply函数在DataFrame添加新列。方法一是直接赋值,如`df['C'] = 0`,创建新列C并初始化为0。方法二是应用函数,例如定义`add_column`函数计算A列和B列之和,然后使用`df.apply(add_column, axis=1)`,使C列存储每行A、B列的和。
22 0
|
7天前
|
机器学习/深度学习 数据可视化 TensorFlow
Python用线性回归和TensorFlow非线性概率神经网络不同激活函数分析可视化
Python用线性回归和TensorFlow非线性概率神经网络不同激活函数分析可视化
|
Python
python list排序参数实现二维数组按照第2列排序
python list排序参数实现二维数组按照第2列排序
598 0
|
Python
Python编程:列表List.sort和sorted方法排序
Python编程:列表List.sort和sorted方法排序
|
Python
Python 使用列表的sort()进行多级排序实例演示,list的sort()排序方法使用详解,python3中sort()的cmp自定义排序方法,sort()的逆序、倒叙排序方法
Python 使用列表的sort()进行多级排序实例演示,list的sort()排序方法使用详解,python3中sort()的cmp自定义排序方法,sort()的逆序、倒叙排序方法
693 0
Python 使用列表的sort()进行多级排序实例演示,list的sort()排序方法使用详解,python3中sort()的cmp自定义排序方法,sort()的逆序、倒叙排序方法