Python之元组和集合

一、元组创建方式

与列表一样,元组也是序列,并且有序,区别在于元组不能修改。不能修改的还有字符串和数值两种类型。元组的关键字是tuple。元组也可以作为字典的健。

#使用逗号分隔,自动创建一个元组a = 1,2,3#使用圆括号,这是一般通常使用的方法b = (4,5,6)#用圆括号表示空元组e = ()

其中对于单个值的元组要注意,使用以下两种方式创建

a = 1   ##非元组b = (2)  ##非元组c = 7,   ##是元组,注意需要逗号d = (8,) ##是元组,注意需要逗号

使用tuple类型转换成元组

tuple([1, 2, 3])tuple((1, 2, 3))

二、为什么要将元组设计成不可修改的序列

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

如果元组中对象是可变对象,则可变对象的数据可以改变,但引用不可改变
a = (1, [2, 3], 4)a[1].append(5)print(a)输出:(1, [2, 3, 5], 4)

元组和列表都可以使用for...in进行遍历。

此外,元组没有生成式。

三、集合创建方式

集合是Python内置数据结构,与列表、字典同属于可变类型序列。集合是没有value的字典。是一个无序的不重复元素序列。​​​​​​​

使用{}创建a = {1,2,3}
使用set创建print(set([1,2,3]))print(set((1,2,4)))print(set('hello'))输出:{1, 2, 3}{1, 2, 4}{'o', 'h', 'l', 'e'}

通过上例hello的输出,证明集合是无序的。

空集合只能使用set() 创建,不能使用 {} ,{} 创建的是空字典。

四、集合操作

add方法 向集合添加一个元素,如果元素已存在,则不进行任何操作。​​​​​​​

a = {1,2,3}a.add(4)print(a)   #{1, 2, 3, 4}

update方法 向集合添加元素,参数可以是列表、元组等。​​​​​​​

a = {1,2,3}a.update([4,5,6])print(a) #{1, 2, 3, 4, 5, 6}

clear方法 清空集合​​​​​​​

a = {1,2,3}a.clear()print(a) #set()

remover方法 一次删除一个指定元素,如果元素不存在抛出keyerror​​​​​​​

a = {1,2,3}a.remove(2)print(a) #{1, 3}

discard方法 一次删除一个指定元素,如果指定的元素不存在不抛出异常​​​​​​​

a = {1,2,3}a.discard(22)print(a) #{1, 2, 3}

pop方法 一次删除一个任意元素,set 集合的 pop 方法会对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除。​​​​​​​

a = set(("aa", "bb", "cc", "dd"))b = a.pop()#删除一个任意元素 ,所以b的取值不确定print(b)

copy方法 返回一个拷贝集合​​​​​​​

a = {"aa", "bb", "cc"}b = a.copy()b.add('dd')print(a,b) #{'cc', 'aa', 'bb'} {'cc', 'aa', 'bb', 'dd'}

判断元素是否在集合​​​​​​​

a = set(("aa", "bb", "cc", "dd"))'aa' in a

五、此外集合还有关系运算

使用 == 或者 != 判断集合是否相等,

使用issubset判断 一个集合是否是另一个集合的子集,

使用issuperset判断一个集合是否是另一个集合的超集,

使用isdisjoint判断两个集合有没有交集。

六、集合生成式,类似于列表的生成式

Python之元组和集合_第1张图片

a = {i for i in range(10)}print(a) #{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}


关注公众号同步更新:

 三四五才醒的程序员  

你可能感兴趣的:(python)