Python 之元组(tuple)、集合(set)

____tz_zs

元组(tuple)

元组(tuple)是特殊的序列类型,使用逗号和圆括号来表示,如(‘red’, ‘blue’, ‘green’), (2, 4, 6)。

元组一旦被创建就不能修改,使得代码更安全,访问方式和列表相同,一般用于表达固定数据项、函数多返回值等情况。

特点:

元组中的元素可以是不同类型的

元组中各元素存在先后关系,可通过索引访问元组中元素

二、集合(set)

Python 中的集合(set)类型同数学中的集合概念一致,即包含0或多个数据项的无序组合。

  • 集合中的元素不可重复。
  • 集合是无序组合,没有索引和位置的概念。
  • set() 函数用于集合的生成,返回结果是一个无重复且排序任意的集合。
  • 集合通常用于表示成员间的关系、元素去重等。

(一)创建集合

创建空集合

set_obj = set()
print(set_obj)
"""
set()
"""

使用列表创建

set_obj = set([1, 2, 3, 4, 5, 1, 2, 3])
print(set_obj)
"""
{1, 2, 3, 4, 5}
"""

使用元组创建

set_obj = set((1, 2, 3, 4, 5, 1, 2, 3))
print(set_obj)
"""
{1, 2, 3, 4, 5}
"""

(二)添加元素到集合中

set_obj.add(element)

将元素 element 添加到集合 set_obj 中,如果元素已存在,则不进行任何操作。

set_obj = set()
set_obj.add("aa")
set_obj.add("bb")
set_obj.add("aa")
print(set_obj)
"""
{'aa', 'bb'}
"""

set_obj.update(str/tuple/list/dict)

update 可以将字符串作为当个字符添加,也可以添加列表,元组,字典等。

set_obj = set()
set_obj.update("ab")
set_obj.update(["bb", "aa", "cc"])
set_obj.update(("cc", "dd"))
set_obj.update({"ee", "ee", "ff"})
print(set_obj)
"""
{'aa', 'dd', 'bb', 'ff', 'cc', 'ee', 'a', 'b'}
"""
set_obj = set()
set_obj.update("ab", ["bb", "aa", "cc"], ("cc", "dd"), {"ee", "ee", "ff"})
print(set_obj)
"""
{'b', 'bb', 'dd', 'ee', 'cc', 'aa', 'ff', 'a'}
"""

(三)移除元素

set_obj.remove(element)

将元素 element 从集合 set_obj 中移除,如果元素不存在,则会报错。

set_obj = set({'b', 'bb', 'dd', 'ee', 'cc', 'aa', 'ff', 'a'})
set_obj.remove("aa")
print(set_obj)
"""
{'b', 'a', 'dd', 'bb', 'cc', 'ee', 'ff'}
"""
set_obj.remove("xxx")
print(set_obj)
"""
Traceback (most recent call last):
  File "............./test.py", line 7, in <module>
    set_obj.remove("xxx")
KeyError: 'xxx'
"""

set_obj.discard(element)

discard 与 remove 不同在于,移除没有的元素时,不会报错。

set_obj = set({'b', 'bb', 'dd', 'ee', 'cc', 'aa', 'ff', 'a'})
set_obj.discard("aa")
print(set_obj)
"""
{'b', 'a', 'dd', 'bb', 'cc', 'ee', 'ff'}
"""
set_obj.discard("xxx")
print(set_obj)
"""
{'dd', 'cc', 'a', 'b', 'ee', 'ff', 'bb'}
"""

set_obj.pop()

抛出无序的集合中最左边的元素。虽然例子中好像pop的有规律,但它仍然是无序的。

set_obj = set({'b', 'bb', 'dd', 'ee', 'cc', 'aa', 'ff', 'a'})
print(set_obj)
"""
{'aa', 'bb', 'b', 'dd', 'ff', 'a', 'ee', 'cc'}
"""
set_obj.pop()
print(set_obj)
"""
{'bb', 'b', 'dd', 'ff', 'a', 'ee', 'cc'}
"""
set_obj.pop()
print(set_obj)
"""
{'b', 'dd', 'ff', 'a', 'ee', 'cc'}
"""

set_obj.clear()

清空集合

set_obj = set({'b', 'bb', 'dd', 'ee', 'cc', 'aa', 'ff', 'a'})
print(set_obj)
"""
{'b', 'cc', 'ee', 'a', 'bb', 'aa', 'dd', 'ff'}
"""
set_obj.clear()
print(set_obj)
"""
set()
"""

(四)用于计算交集、差集、并集等

s -ts.difference(t) 返回在集合s中但不在t中的元素

s & ts.intersection(t) 返回同时在集合s和t中的元素

s | ts.union(t) 返回集合s和t中的所有元素

s^ts.symmetric_difference(t) 返回集合s和t中的元素,但不包括同时在其中的元素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值