python数据类型(集合)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python数据类型(集合)相关的知识,希望对你有一定的参考价值。

参考技术A     1.集合(set)是一个无序不重复元素的序列(意思是有重复的会自动删除,每次打印元素的位置不一定)

    2.基本功能是进行成员关系测试和删除重复元素

    3.可以使用大括号 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 ,因为 是用来创建一个空字典

    4.因为set存储的是无序集合,所以我们没法通过索引来访问。访问 set中的某个元素实际上就是判断一个元素是否在set中。

1.创建集合

s=set()#创建一个空集合

s1=1,2,3,'a','python'

2.删除重复的元素

集合是一个无序不重复元素的序列(意思是有重复的会自动删除,每次打印元素的位置不一定)

3.成员关系测试(检测某个成员是否在集合中)

案例:从终端输入5位数,以空格隔开,把这5位数存入列表中,剔除重复的数据,打印出来

#提示,列表转集合,集合转列表

a=input("请输入5位数字:")

mylist=a.split()

print(mylist)

b=set(mylist)

c=list(b)

print(c)

4.集合常用操作

    1.添加元素

    2.删除元素

    3.删除整个集合

    4.获取集合的长度

    5.不支持改元素

集合操作-添加元素

格式:

集合.add(元素)

格式:

集合.update(元素)

区别:

add不能添加列表,update可以

update是将字符串中的拆分成字符进行追加

add,是当做整体追加在集合中

#案例:从终端输入一个数字就加入集合中,然后打印,又输入一个数字,然后打印,直到输入-1,退出输入

#然后打印最终的集合

ms=set()

while 1:

a=int(input("请输入一个数字:"))

if a==-1:

    break

    ms.add(a)

print(ms)

print(ms)

#案例:从终端输入一个字符串就加入集合中,然后打印,又输入一个字符串,然后打印,直到输入q,退出输入

#然后打印最终的集合,字符串要分开存储,如输入hello,存储的列表是'h','e','l','0'

ms=set()

while 1:

a=input("请输入一个字符串:")

if a=='q':

    break

    ms.update(a)

print(ms)

print(ms)

集合操作-删除元素及删除整个集合

格式:

集合.remove(元素)  # 元素如果不存在会引发KeyError

集合.discard(元素)  # 元素如果不存在不发生任何事

集合.pop()  # 集合元素是字符串类型时删除随机元素。 集合元素是其他数据类型时,删除左边第一个元素

del 集合名 #删除整个集合

#案例:有集合1,2,3,'hello','world',删除全部字符串,然后最左边第一个元素

a=1,2,3,'hello','world'

a.discard("hello")

a.discard("world")

a.pop()

print(a)

集合操作-获取集合的长度

格式:

len(集合名)

#案例:有集合1,2,3,4,'hello','a',保留1个元素,其他的删除,假如元素个数不确定

s=1,2,3,4,'hello','a'

for i  in range(len(s)-1):

            s.pop()

  print(s)

集合的集运算

集合的交集,并集,差集,对称差集的运算

1,2,3,4交集4,5,6,7 -->4   交集(&)

1,2,3,4并集4,5,6,7 ->1,2,3,4,5,6,7  并集(|)

1,2,3,4差集4,5,6,7 ->1,2,3  差集(-)

1,2,3,4对称差集4,5,6,7->1,2,3,5,6,7 4同时出现在两个集合中,不选它 对称差集(^)

#案例:使用花括号和set创建各一个集合,然后对集合进行交、并、差、对称差运算

s=1,2,3,4,5,6

s1=set([6,7,8,9,10])

print(s&s1)

print(s|s1)

print(s-s1)

print(s^s1)

Python数据类型-集合

0、什么是集合?

集合是一个无序的,不重复的数据组合,它的主要作用如下:

去重,把一个列表变成集合,就自动去重了

关系测试,测试两组数据之前的交集、差集、并集等关系


集合(set):把不同的元素组成一起形成集合,是python基本的数据类型。

集合元素(set elements):组成集合的成员(不可重复)

集合对象是一组无序排列可哈希(不可变,类似字典的键)的值:集合成员可以做字典的键


集合分类:可变集合、不可变集合

可变集合(set):可添加和删除元素,非可哈希的,不能作为字典的键,也不能做其他集合的元素

不可变集合(frozenset):与上面恰恰相反


li=[[1,2],\'a\',\'b\']
s =set(li) # TypeError: unhashable type: \'list\'
print(s)


a=set(\'alex li a\')  #有多个 a
print(a)
{\' \', \'l\', \'i\', \'a\', \'x\', \'e\'}    # 集合会把重复的去掉,并无序的打印出来

b=[\'aaa\',\'bbb\',\'aaa\']
s=set(b)
print(s)
{\'aaa\', \'bbb\'}      # 列表里有重复,会把重复的去掉



1、创建集合

由于集合没有自己的语法格式,只能通过集合的方法 set() frozenset() 创建,或者 {} 来创建

s1 = set(\'alvin\')
 
s2= frozenset(\'yuan\')  # 不可变集合

s3={1,2,3}


print(s1,type(s1))  #{\'l\', \'v\', \'i\', \'a\', \'n\'} <class \'set\'>
print(s2,type(s2))  #frozenset({\'n\', \'y\', \'a\', \'u\'}) <class \'frozenset\'>


2、访问集合

由于集合本身是无序的,所以不能为集合创建索引或切片操作,只能循环遍历或使用in、not in来访问或判断集合元素。

s1 = set(\'alvin\')
print(\'a\' in s1)
print(\'b\' in s1)
#s1[1]  #TypeError: \'set\' object does not support indexing
 
for i in s1:
    print(i)
#    
# True
# False
# v
# n
# l
# i
# a



3、更新集合

可使用以下内建方法来更新:

set.add():增

set.remove():删

set.update():改

注意:只有可变集合才能更新:

# s1 = frozenset(\'alvin\')
# s1.add(0)  #AttributeError: \'frozenset\' object has no attribute \'add\'
 
s2=set(\'alvin\')
s2.add(\'mm\')   # ‘mm’ 会作为一个整体存入
print(s2)  #{\'mm\', \'l\', \'n\', \'a\', \'i\', \'v\'}
 
s2.update(\'HO\')# 添加多个元素,把 HO 拆开,作为单个元素添加进去,如果有重复的,会去重
print(s2)  #{\'mm\', \'l\', \'n\', \'a\', \'i\', \'H\', \'O\', \'v\'}

s2.update([12,\'alex\',\'eee\',\'alvin\'])  # 列表里面,元素是一个整体,
print(s2) # {\'l\', \'n\', \'alvin\', \'a\', 12, \'i\', \'alex\', \'v\', \'eee\'} 

s2.remove(\'l\')   # 指定删除,当值不存在时,会报错
print(s2)  #{\'mm\', \'n\', \'a\', \'i\', \'H\', \'O\', \'v\'}
s2.discard(\'vvvv\') # 指定删除,当值不存在时,不会报错

s2.pop()   # 随机删除一个元素
s2.clear()  # 清空集合
del s2:删除集合本身



4、集合类型操作符

1 in ,not in:判断某元素是否在集合内

2 集合等价与不等价(==, !=)

3 子集、超集

4 print(a.isdisjoint(b)),两个集合没有任何关联就返回为真

`H6T5%0QH@8%`POKPO~9$CT[7]

以上是关于python数据类型(集合)的主要内容,如果未能解决你的问题,请参考以下文章

Python组合数据类型

Python组合数据类型

Python数据类型-集合

15.Python数据类型set集合类型

10 Python 数据类型—集合

python -集合