元组 字典 集合

目录

1.1 元组()

1.1.1元组创建与删除 

 2.1 字典{}

2.1.1 字典创建与删除 

2.1.2 字典元素的读取 

2.1.3 字典元素的添加与修改 

3.1 集合 {}

3.1.1 集合的创建与删除 

3.1.2  集合运算


1.1 元组()

元组和列表类似,但属于不可变序列,元组一旦创建,用任何方法都不可以修改其元素

元组的定义方式和列表相同,但定义时所有元素是放在一对圆括号“()”中,而不是方括号中。 

1.1.1元组创建与删除 

1) 使用“=”将一个元组赋值给变量 

>>> a_tuple = ('a', 'b', 'mpilgrim', 'z', 'example')
>>> a_tuple
('a', 'b', 'mpilgrim', 'z', 'example')
>>> a = (3)
>>> a
3
>>> a = (3,)             #包含一个元素的元组,最后必须多写个逗号
>>> a
(3,)
>>> a = 3,               #也可以这样创建元组
>>> a
(3,)
>>> x = ()               #空元组

2)使用tuple函数将其他序列转换为元组 

>>> tuple('abcdefg')                    #把字符串转换为元组
('a', 'b', 'c', 'd', 'e', 'f', 'g')
>>> aList
[-1, -4, 6, 7.5, -2.3, 9, -11]
>>> tuple(aList)                        #把列表转换为元组
(-1, -4, 6, 7.5, -2.3, 9, -11)
>>> s = tuple()                         #空元组
>>> s
()

3)使用del可以删除元组对象,不能删除元组中的元素 

 元组与列表的区别

  • 元组一旦定义就不允许更改。
  • 元组没有append()、extend()和insert()等方法,无法向元组中添加元素。
  • 元组没有remove()或pop()方法,也无法对元组元素进行del操作,不能从元组中删除元素
  • 元组的速度比列表更快。如果定义了一系列常量值,而所需做的仅是对它进行遍历,那么一般使用元组而不用列表
  • 元组对不需要改变的数据进行“写保护”将使得代码更加安全。
  • 元组可用作字典的“键”,也可以作为集合的元素。列表不能作为字典的“键”,包含列表、字典、集合或其他类型可变对象的元组也不能做字典的“键”。
  • 如果元组中包含列表或其他类型的可变对象,这些对象是可变的,但元组元素的引用仍是不可变的。
    >>> x = ([1, 2], 3)
    >>> x[0][0] = 5
    >>> x
    ([5, 2], 3)
    >>> x[0].append(8)
    >>> x
    ([5, 2, 8], 3)
    >>> x[0] = x[0]+[10]
    TypeError: 'tuple' object does not support item assignment
    >>> x
    ([5, 2, 8], 3)
    >>> x[0] += [10]
    TypeError: 'tuple' object does not support item assignment
    >>> x
    ([5, 2, 8, 10], 3)

 2.1 字典{}

  • 字典是无序、可变序列。
  • 定义字典时,每个元素的键和值用冒号分隔,元素之间用逗号分隔,所有的元素放在一对大括号“{}”中。
  • 字典中的键可以为任意不可变数据,比如整数、实数、复数、字符串、元组等等。
  • globals()返回包含当前作用域内所有全局变量和值的字典
  • locals()返回包含当前作用域内所有局部变量和值的字典。

2.1.1 字典创建与删除 

1)使用=将一个字典赋值给一个变量 

>>> a_dict = {'server': 'db.diveintopython3.org', 'database': 'mysql'}
>>> a_dict
{'database': 'mysql', 'server': 'db.diveintopython3.org'}
>>> x = {}                     #空字典
>>> x
{}

2)使用dict利用已有数据创建字典 

>>> keys = ['a', 'b', 'c', 'd']
>>> values = [1, 2, 3, 4]
>>> dictionary = dict(zip(keys, values))
>>> dictionary
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
>>> x = dict() #空字典
>>> x
{}

3)使用dict根据给定的键、值创建字典 


>>> d = dict(name='Dong', age=37)
>>> d
{'name': 'Dong', 'age': 37}

4)以给定内容为键,创建值为空的字典 

>>> adict = dict.fromkeys(['name', 'age', 'sex'])
>>> adict
{'name': None, 'age': None, 'sex': None}

5)可以使用del删除整个字典 

2.1.2 字典元素的读取 

1)以键作为下标可以读取字典元素,若键不存在则抛出异常 

>>> aDict = {'name':'Dong', 'sex':'male', 'age':37}
>>> aDict['name']
'Dong'
>>> aDict['tel']                     #键不存在,抛出异常
Traceback (most recent call last):
  File "<pyshell#53>", line 1, in <module>
    aDict['tel']
KeyError: 'tel'

2)使用字典对象的get()方法获取指定键对应的值,并且可以在键不存在的时候返回指定值。 

>>> print(aDict.get('address'))
None
>>> print(aDict.get('address', 'SDIBT'))
SDIBT                #若address有对应的值则返回,没有则返回指定的值SDIBT

3)使用字典对象的items()方法可以返回字典的元素。

4)使用字典对象的keys()方法可以返回字典的“键”。

5)使用字典对象的values()方法可以返回字典的“值” 

>>> aDict = {'name':'Dong', 'sex':'male', 'age':37}
>>> for key, value in aDict.items():       #序列解包用法
    print(key, value)

name Dong
sex male
age 37
>>> aDict.keys()                           #返回所有“键”
dict_keys(['name', 'sex', 'age'])
>>> aDict.values()                         #返回所有“值”
dict_values(['Dong', 'male', 37])

2.1.3 字典元素的添加与修改 

当以指定键为下标为字典赋值时:

1)若键存在,则可以修改该键的值;

2)若不存在,则表示添加一个键、值对。 

>>> aDict['age'] = 38                 #修改元素值
>>> aDict
{'age': 38, 'name': 'Dong', 'sex': 'male'}
>>> aDict['address'] = 'SDIBT'        #增加新元素
>>> aDict
{'age': 38, 'address': 'SDIBT', 'name': 'Dong', 'sex': 'male'}

3)使用字典对象的update()方法将另一个字典的键、值对添加到当前字典对象。 

>>> aDict
{'age': 37, 'score': [98, 97], 'name': 'Dong', 'sex': 'male'}
>>> aDict.items()
dict_items([('age', 37), ('score', [98, 97]), ('name', 'Dong'), ('sex', 'male')])
>>> aDict.update({'a':'a','b':'b', 'age':43})
>>> aDict
{'age': 43, 'score': [98, 97], 'name': 'Dong', 'sex': 'male', 'a': 'a', 'b': 'b'}

4)使用del删除字典中指定键的元素

5)使用字典对象的clear()方法来删除字典中所有元素

6)使用字典对象的pop()方法删除并返回指定键的元素

7)使用字典对象的popitem()方法删除并返回字典中的一个元素 

3.1 集合 {}

集合是无序、可变序列,使用一对大括号界定,元素不可重复,同一个集合中每个元素都是唯一的 

集合中只能包含数字、字符串、元组等不可变类型(或者说可哈希)的数据,而不能包含列表、字典、集合等可变类型的数据 

3.1.1 集合的创建与删除 

1)直接将集合赋值给变量 

>>> a = {3, 5}

2)使用set将其他类型数据转换为集合 

>>> a_set = set(range(8,14))
>>> a_set
{8, 9, 10, 11, 12, 13}
>>> b_set = set([0, 1, 2, 3, 0, 1, 2, 3, 7, 8])   #自动去除重复
>>> b_set
{0, 1, 2, 3, 7, 8}
>>> c_set = set()                                 #空集合
>>> c_set
set()

3) 当不再使用某个集合时,可以使用del命令删除整个集合

4)集合对象的pop()方法弹出并删除其中一个元素

5)remove()方法直接删除指定元素

6)clear()方法清空集合

>>> a = {1, 4, 2, 3}
>>> a.pop()
1
>>> a.pop()
2
>>> a
{3, 4}
>>> a.add(2)
>>> a
{2, 3, 4}
>>> a.remove(3)
>>> a
{2, 4}

3.1.2  集合运算

1)交集、并集、差集、对称差集等运算 

>>> a_set = set([8, 9, 10, 11, 12, 13])
>>> b_set = {0, 1, 2, 3, 7, 8}
>>> a_set | b_set                             #并集
{0, 1, 2, 3, 7, 8, 9, 10, 11, 12, 13}
>>> a_set & b_set                             #交集
{8}
>>> a_set - b_set
{9, 10, 11, 12, 13}
>>> a_set ^ b_set                             #对称差集
{0, 1, 2, 3, 7, 9, 10, 11, 12, 13}

 2)集合包含关系测试

>>> x = {1, 2, 3}
>>> y = {1, 2, 5}
>>> z = {1, 2, 3, 4}
>>> x < y                                #比较集合大小/包含关系
False
>>> x < z                                #真子集
True
>>> y < z
False
>>> {1, 2, 3} <= {1, 2, 3}               #子集
True

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python编程语言中,有四种常用的集合数据类型,它们分别是列表(List)、元组(Tuple)、字典(Dictionary)和集合(Set)。列表是一种有序和可更改的集合,允许重复的成员。元组是一种有序且不可更改的集合,也允许重复的成员。字典是一个无序、可变且有索引的集合,其中没有重复的成员。而集合是一种无序和无索引的集合,没有重复的成员。这四种集合数据类型在Python中都有着不同的特点和用途。 在Python中,列表、元组和字符串都属于序列,它们的元素都可以通过编号进行访问。而字典则属于映射,其中的元素是以键值对的形式存在的。集合则不属于序列或映射中的任何一种,它是一种独立的数据类型,用于存储一组不重复的元素。 总结起来,Python中的列表(List)、元组(Tuple)、字典(Dictionary)和集合(Set)都是常用的集合数据类型,它们各自有着不同的特点和用途。列表是有序和可更改的集合元组是有序且不可更改的集合字典是无序、可变且有索引的集合集合是无序和无索引的集合。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [浅谈python四种集合数据类型—【列表、元组集合字典】](https://blog.csdn.net/QWERTYzxw/article/details/121479048)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [python 元组集合字典](https://download.csdn.net/download/weixin_38603219/13752298)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值