Python中的元组和集合

1、什么是元组

      元组是python内置数据结构之一,是一个不可变序列。

      不可变序列与可变序列:

              不可变序列:字符串、元组          不可变序列没有增删改的操作

               可变序列:列表、字典            可变序列可以进行增删改查的操作,对象地址不发生改变  

     为什么要将元组设计成不可变序列:

             1:在多任务环境下,同事操作对象时不需要加锁,因此在程序中尽量使用不可变序列

             注意事项:元组中存储的是对象的引用

                               (a)如果元组中对象本身不可对象,则不能再引用其它对象

                               (b)如果元组中的对象是可变对象,则可变对象的引用不允许改变,但数据                                            可以改变。

# 可变序列 列表、字典
lst=[10,20,45]
print(id(lst))
lst.append(300)
print(id(lst))

# 不可变序列 字符串,元组
s='hello'
print(id(s))
s=s+'word'
print(id(s))
print(s)

2、元组的创建

# 元组的创建方式
# 直接小括号
t = ('Python','hello',90)
print(t)
print(type(t))
# 使用内置函数tuple()
t1 = tuple(('Python','hello',90))
print(t1)
print(type(t1))
# 只包含一个元组的元素需要使用逗号和小括号
t2=(10,)
print(t2)
print(type(t2))
# 空元组的创建方式
t3=()
t4=tuple()
print('空元组',t3,t4)

3、元组的遍历

      元组是可迭代对象,所以可以用for in 循环

t=('Python','world',98)
# 第一种获取元组元素的方式,使用索引
print(t[0])
print(t[1])
print(t[2])

#遍历元组
for item in t:
    print(item)

4、什么是集合

      集合:

               Python语言提供的内置数据结构

               与列表、字典一样都属于可变类型的序列

               集合是没有value的字典

5、集合的创建

# 集合的创建方式
# 第一种创建方式使用{}
s={2,3,4,5,6,7,7} #集合中的元素不允许重复
print(s)
print(type(s))

# 使用内置函数set()
s1=set(range(6))
print(s1)
print(type(s1))

s2=set([1,2,3,4,5,6,7,8])
print(s2)
print(type(s2))

s3=set((1,2,3,4,5,5,65))
print(s3)
print(type(s3))

s4=set('Python')
print(s4)
print(type(s4))

s5=set({12,4,34,55,66,44,4})
print(s5)
print(type(s5))

# 定义一个空集合
s6=set()
print(type(s6))

6、集合的增删改查操作

      集合元素的判断操作:  in或not in

s={10,20,30,405,60}
print(10 in s)  # True
print(100 in s) # False
print(10 not in s)# False
print(100 not in s)# True

      集合元素的新操作 :

                                      调用add()方法,一次添中一个元素

                                      调用update()方法至少添中一个元素    

       集合元素的删除操作:

                                       调用remove()方法,一次删除一个指定元素,如果指定的元素不存在抛出                                         keyError

                                       调用discard()方法,一次删除一个指定元素,如果指定的元素不存在不抛                                         异常

                                       调用pop()方法,一次只删除一个任意元素

                                       调用clear()方法,清空集合

# 集合元素的新增操作
s.add(80)  #  一次只添加一个
print(s)
s.update({200,400,300})  # 一次添加多个
print(s)
s.update([100,99,8])
s.update((78,64,56))
print(s)
# 基合元素的删除操作
s.remove(100)
print(s)
#s.remove(500)  # KeyError: 500   不存在抛异常
#print(s)
s.discard(500) # 不存在不抛异常
print(s)
s.pop()
print(s)
#s.pop(400) # pop方法不能添加参数 TypeError: set.pop() takes no arguments (1 given)
#print(s)
s.clear() # 清空集合元素
print(s)

7、集合间的关系

      两个集合是否相等:可以使用运算符==或!=进行判断

      一个集合是否是另一个集合的子集:1、可以调用方法issubset进行判断   2、B是A的子集

      一个集合是否是另一个集合的超集:1、可以调用方法issuperset进行判断      2、A是B的超集

      两个集合是否没有交集     可以调用方法isdisjoint进行判断

        

# 两个集合是否相等(元素相等,就相等)
s={10,20,30,40}
s2={30,40,20,10}
print(s==s2)  # True
print(s!=s2)  # False

# 一个集合是否是另一个集合的子集
s1={10,20,30,40,50,60}
s2={10,20,30,40}
s3={10,20,90}
print(s2.issubset(s1))
print(s3.issubset(s1))

# 一个集合是否是另一个集合的超集
print(s1.issuperset(s2))
print(s1.issuperset(s3))

# 两个集合是否有交集
print(s2.isdisjoint(s3)) # False 有交集false
s4={100,200,300}
print(s2.isdisjoint(s4)) # True  没有交集为true

# 交集
s1={10,20,30,40}
s2={20,30,40,50,60}
print(s1.intersection(s2))
print(s1 & s2) #intersection()与&等价,交集操作

# 并集
print(s1.union(s2))
print(s1 | s2) # union 与 | 等价,并集操作
print(s1)
print(s2)

# 差集操作
print(s1.difference(s2))
print(s1-s2)
print(s2.difference(s1))
print(s2-s1)

# 对称差集
print(s1.symmetric_difference(s2))
print(s1^s2)

8、集合和列表的生成式

# 列表生成式
lst=[ i*i for i in range(6)]
print(lst)

# 集合生成式
lst1={ i*i for i in range(10)}
print(lst1)

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值