返回顶部
首页 > 资讯 > 后端开发 > Python >Python学习—元组与集合
  • 272
分享到

Python学习—元组与集合

Python 2023-01-31 07:01:07 272人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

1.元组(tuple) python 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。 1.元组定义 (1).定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来,并且以后不可更改其值。 &

1.元组(tuple)

python 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。

1.元组定义

(1).定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来,并且以后不可更改其值。

>>> tup1 = ('this','is','aaaa')
>>> tup2 = (1,2,3,4)
>>> tup3 = (1,2,3,'ssss')
>>> tup4 = 'aa','bb','cc','dd';    #不用括号也可以定义元组
>>> type(tup4)
<class 'tuple'>      #可以看到tup4是元组

(2).需要注意:元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用。

>>>tup1 = (50)
>>> type(tup1)     # 不加逗号,类型为整型
<class 'int'>
>>> tup1 = (50,)
>>> type(tup1)     # 加上逗号,类型为元组
<class 'tuple'>

这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,小括号表示数学符号,因此tup1是整型。所以,只有1个元素的tuple定义时必须加一个逗号,,来消除歧义。

(3).创建空元组

>>> tup1 = ()      #用括号来创建空元组
>>> type(tup1)
<class 'tuple'>
>>> tup1
()              #可以看到元组里没有值,为空

(4).最后来看一个“可变的”tuple:

>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])

这个tuple定义的时候有3个元素,分别是'a','b'和一个list。不是说tuple一旦定义后就不可变了吗?怎么后来又变了?
我们先看看定义的时候tuple包含的3个元素:
Python学习—元组与集合
当我们把list的元素'A'和'B'修改为'X'和'Y'后,tuple变为:
Python学习—元组与集合
表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!
所以要创建一个内容也不变的tuple那就必须保证tuple的每一个元素本身也不能变,即是不可变数据类型。

2.访问元组(索引

元组可以使用中括号加下标索引来访问元组中的值。

>>> tup1 = ('this','is','aaaa')
>>> tup1[0]
'this'
>>> tup1[1]
'is'
>>> tup1[-1]
'aaaa'

3.删除元组

元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组

>>> tup4
('aa', 'bb', 'cc', 'dd')
>>> del tup4
>>> tup4
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'tup4' is not defined     #可以看到,删除元组后再查看元组,错误信息提示元组未被定义

4.元组特性

(1).切片
和列表的切片一样,使用中括号。

>>> tup3
('this', 'is', 'aaaa', 1, 2, 3, 4)
>>> tup3[:]
('this', 'is', 'aaaa', 1, 2, 3, 4)
>>> tup3[2:]
('aaaa', 1, 2, 3, 4)
>>> tup3[:-1]
('this', 'is', 'aaaa', 1, 2, 3)
>>> tup3[::-1]
(4, 3, 2, 1, 'aaaa', 'is', 'this')
>>> tup3[::-2]
(4, 2, 'aaaa', 'this')

(2).重复
与列表一样,使用符号*

>>> tup2
(1, 2, 3, 4)
>>> tup3 * 2
('this', 'is', 'aaaa', 1, 2, 3, 4, 'this', 'is', 'aaaa', 1, 2, 3, 4)

(3).连接
与列表一样,使用符号+

>>> tup1 = ('this','is','aaaa')
>>> tup2 = (1,2,3,4)
>>> tup3 = tup1 + tup2
>>> tup3
('this', 'is', 'aaaa', 1, 2, 3, 4)

(4).成员操作符
与列表一样,使用符号:in与not in

>>> tup3
('this', 'is', 'aaaa', 1, 2, 3, 4)
>>> 'aaaa' in tup3
True
>>> 2 in tup3
True
>>> 4 not in tup3
False

5.元组内置函数

Python元组包含了以下内置函数
方法 描述
len(tuple) 计算元组元素个数。
max(tuple) 返回元组中元素最大值。
min(tuple) 返回元组中元素最小值。
tuple(seq) 将列表转换为元组。

2.集合

没有重复的数据,可以有不同数据类型。集合(set)是一个无序不重复元素的序列(所以不支持索引、切片、重复)。
可以使用大括号 { } 或者 set() 函数创建集合.
注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。当用set()创建的集合有多个个元素时,需要将所有的元素再用括号括起来,否则会报错。

1.集合定义

>>> sett = {1,2,3,4}   
>>> sett
{1, 2, 3, 4}
>>> s = {1,2,'hh','ee'}
>>> s
{1, 2, 'ee', 'hh'}
>>> set1 = {'apple', 'orange', 'pear', 'banana'}
>>> set1
{'orange', 'pear', 'apple', 'banana'}
>>> set2  = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}    
>>> set2
{'orange', 'pear', 'apple', 'banana'}     #集合的去重(集合中不允许有相同的数据,有也只会记录一次,自动将重复的数据省略)

>>> ss = set('aa','bb')         
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: set expected at most 1 arguments, Got 2    #set()定义多个元素的集合报错

>>> ss = set(('aa','bb'))    #不会报错
>>> ss                    
{'aa', 'bb'}

定义空集合:

>>>  s = set()
>>> s
set()
>>> type(s)
<class 'set'>

2.添加元素:set.add(x)

向已经存在的集合中添加一个元素。如果元素已存在,则不进行任何操作,如果添加多个元素,则会报错。

>>> set1 = {'aa','ab',1,2}
>>> set1
{'ab', 1, 'aa', 2}
>>> set1.add('cc')
>>> set1
{1, 2, 'cc', 'ab', 'aa'}
>>> set1.add(8,9) 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: add() takes exactly one argument (2 given)

还有一个方法,也可以添加元素,且参数是列表,元组,字典,集合,字符串,不能是整数。语法格式如下:
set.update( x )
x 可以有多个,用逗号分开。

>>>set2 = {"Google", "RBQ", "Taobao"}
>>> set2
{'RBQ', 'Taobao', 'Google'}
>>> set2.update({1,3})
>>> set2
{1, 3, 'Google', 'Taobao', 'RBQ'}
>>> set2.update([1,4],[5,6])  
>>> set2
{1, 3, 4, 5, 6, 'Google', 'Taobao', 'RBQ'}
>>> set2.update(88) 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable

另外再添加字符串的时候,还有一个有趣的现象。

>>> set2.update('s')
>>> set2
{1, 3, 4, 5, 6, 'Google', 'Taobao', 'RBQ','s'}
>>> set2.update('ssss')
>>> set2
{1, 3, 4, 5, 6, 'Google', 'Taobao', 'RBQ','s'}    #添加了'ssss'结果集合中没有。
>>> set2.remove('s')
>>> set2
{1, 'RBQ', 3, 4, 'Taobao', 'Google', 5, 6}      #删除了元素's'
>>> set2.update('ssss')
>>> set2
{1, 'RBQ', 3, 4, 'Taobao', 'Google', 5, 6, 's'}    #重新添加元素'ssss'结果集合出现了一个's'
>>> set2.update('sss1')
>>> set2
{1, 3, 4, 5, 6, 'RBQ', 'Taobao', '1', 's', 'Google'}   #添加'sss1'结果出现了'1'
>>> set2.update('sa')  
>>> set2
{1, 3, 4, 5, 6, 'RBQ', 'Taobao', '1', 'a', 's', 'Google'}   #添加'sa'出现了'a'

此外还有一个方法也是移除集合中的元素,且如果元素不存在,不会发生错误。格式如下所示:
set.discard( x )

>>> set1.discard('RBQ')
>>> set1
{'ALI'}
>>> set1.discard('DDD')
>>> set1
{'ALI'}

还可以弹出的方式来删除集合中的一个元素,它会返回弹出的元素。语法格式如下:
set.pop()

>>> set2
{1, 3, 4, 5, 6, 'RBQ', 'Taobao', '1', 'a', 's', 'Google'}
>>> set2.pop()
1
>>> set2
{3, 4, 5, 6, 'RBQ', 'Taobao', '1', 'a', 's', 'Google'}
>>> set2.pop()
3
>>> set2.pop()
4

3.移除元素:set.remove(x)

向已经存在的集合中添加元素。如果元素不存在,则会发生错误。

>>> set1 = {"ALI", "RBQ", "TB"}
>>> set1
{'RBQ', 'ALI', 'TB'}
>>> set1.remove("TB")
>>> set1
{'RBQ', 'ALI'}
>>> set1.remove("TTTT")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'TTTT'

4.成员操作符:in和not in

>>> set2
{5, 6, 'RBQ', 'Taobao', '1', 'a', 's', 'Google'}
>>> 'RBQ' in set2
True
>>> 2 not in set2
True
>>> 6 not in set2
False

5.集合运算:

    并集;s1.uNIOn(s2) 或者 s1 | s2
    交集:s1.intersection(s2) 或者 s1 | s2
    差集:s1.difference(s2) 或者 s1 - s2
         s2.denfference(s1) 或者 s2 - s1
    对差等分(并集-交集):s1.symmetric_difference(s2) 或者 s1 ^ s2

6.两个集合函数

(1).求集合长度:len(set)

>>> set2
{5, 6, 'RBQ', 'Taobao', '1', 'a', 's', 'Google'}
>>> len(set2)
8

(2).清空集合:set.clear()

>>> set2
{5, 6, 'RBQ', 'Taobao', '1', 'a', 's', 'Google'}
>>> set2.clear()
>>> set2
set()

--结束END--

本文标题: Python学习—元组与集合

本文链接: https://lsjlt.com/news/190936.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python学习—元组与集合
    1.元组(tuple) Python 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。 1.元组定义 (1).定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来,并且以后不可更改其值。 &...
    99+
    2023-01-31
    Python
  • Python基础学习列表+元组+字典+集合
    目录一、列表二、元组三、字典四、集合五、总节前言: 这一章的知识紧接上一章,零基础的小伙伴可以从上一章学起来。当然,你也可以收藏起来慢慢学习,学习是不可操之过急的啦… ...
    99+
    2024-04-02
  • Python学习 :集合
    集合 Set 集合的创建 集合的创建只有一种方式 集合中的元素必须是不可变的数据类型 集合是无序的,可以通过 for 循环来遍历或者迭代器进行筛选 s=set('xiaoming') s1=['alex','mike','alex'...
    99+
    2023-01-30
    Python
  • Python学习-3天--列表与元组
          列表是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。(python叫列表,而其他语言类叫“数组”)      Python有6个序列的内置类型,但...
    99+
    2023-01-31
    列表 Python
  • python学习之元组
    在python中,元组使用小括号,小括号的元素使用逗号隔开即可; 1.元组和列表的区别元组和列表的相同点就是都是序列类型的容器对象,可以存放任何类型的数据,支持切片,迭代操作等;元组和列表的不同点是元组是不可变类型,大小固定,而列表是可变...
    99+
    2023-01-31
    python
  • python之集合(set)学习
    集合是一个无序的不重复元素序列,使用大括号({})、set()函数创建集合, 注意:创建一个空集合必须用set()而不是{},因为{}是用来创建一个空字典。   集合是无序的、不重复的、没有索引的 1 a = {'hello','ni...
    99+
    2023-01-30
    python set
  • Python学习之集合set
    目录集合 (set)一 、合集的一些常用命令1、set 定义合集2、add 添加元素3、clear 清空4、pop 随机删除一个元素5、remove 指定删除6、discard 指定...
    99+
    2024-04-02
  • python元组 字典 集合
    1.列表构建栈的数据结构:栈的特点:先进后出 #!/usr/bin/env python #coding:utf-8 stack = [] info = """ 栈结构 1.入栈 2.出栈 ...
    99+
    2023-01-31
    字典 python
  • python基础学习4----元组
    元组又叫只读列表,不可以修改其内容 1.创建元组 tuple1=(1,3,2,4,5) tuple2=()#空元组 tuple3=('a',) #元组中只有一个元素时要在元素后面加上逗号,否则会被当成其他数据类型处理 tuple4=(1...
    99+
    2023-01-30
    基础 python
  • Python 列表&元组&字典&集合
    列表(list) 有序性,可存储任意类型的值 通过偏移存取,支持索引来读取元素,第一个索引为0 ,倒数第一个索引为-1 可变性 ,支持切片、合并、删除等操作 可通过索引来向指定位置插入元素 可通过pop()方法删除末尾元素,pop(索引...
    99+
    2023-01-30
    字典 列表 Python
  • 元组、字典、集合
    1、作用 存多个值,对比列表来说,元组不可变,主要是用来读。 2、定义 与列表类型比,只不过[ ]换成() t = ()  #本质:t = tuple(())print(t,type(t))  #() <class 'tuple&...
    99+
    2023-01-31
    字典
  • python3学习之元组
    元组的值不能改变,有两个方法:T.count(value)  返回值是出现value的个数T.index(value, [start, [stop]]) 返回值是出现value的第一个index打印:for i in T:    print...
    99+
    2023-01-31
  • python学习笔记之列表(list)与元组(tuple)详解
    前言 最近重新再看python的基础知识,感觉自己还是对于这些知识很陌生,需要用的时候还是需要翻书查阅,还是先注重基础吧——我要重新把python的教程阅读一遍,把以前自己忽略的部分学习,加强练习和记忆。 ...
    99+
    2022-06-04
    详解 学习笔记 列表
  • python3学习之set集合
    关键字set是集合,数据特点是:无序,去重#创建se = {"sdfs","ljk"}    ;大括号中不是键值对se = set((1,2,3,4,8))se = set()   ;空集合#操作se.add         #单个添加  ...
    99+
    2023-01-31
    set
  • Python元组定义及集合的使用
    目录一. 元组1.1 元组的创建1.2 元组的遍历二. 集合2.1 集合的创建2.2 集合的新增2.4 集合的关系1. 两集合是否相等2. 子集3. 交集一. 元组 元组是Pytho...
    99+
    2024-04-02
  • 怎么使用Python的元组和集合
    本篇内容主要讲解“怎么使用Python的元组和集合”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Python的元组和集合”吧!元组元组是不可变的有序项序列。“不可变”&mdash...
    99+
    2023-06-16
  • Python学习之路1 有序集合和无需集
    1.集合是指包含一组元素的数据结构,包括: 1. 有序集合:list,tuple,str和unicode; 2. 无序集合:set 3. 无序集合并且具有 key-value 对:dict ...
    99+
    2023-01-31
    之路 Python
  • Python学习之元组的使用详解
    目录元组的创建元组的删除元组部分元素的输出元组的嵌套元组元素的个数计算:len()元组中的元素最大最小值的求解:max(),min()元组中某元素出现的次数:count函数元组中某元...
    99+
    2024-04-02
  • python元组和字典的简单学习
    用圆括号()标识,定义元组后,元组元素不可修改。如果想修改元组只能重新定义元组。 因为元组不可更改,所以也没有增删改等用法,主要语法就是访问元组元素,遍历元组。 访问元组元素: 1 tuple1 = (1, 2, 3, 4) 2 pr...
    99+
    2023-01-30
    字典 简单 python
  • python学习之--习题集
    1.什么是PVM?pvm是python的虚拟机,它是python运行时引擎解释编译得到的代码...
    99+
    2023-01-31
    习题集 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作