一、元组创建方式
与列表一样,元组也是序列,并且有序,区别在于元组不能修改。不能修改的还有字符串和数值两种类型。元组的关键字是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判断两个集合有没有交集。
六、集合生成式,类似于列表的生成式
a = {i for i in range(10)}
print(a) #{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
关注公众号同步更新:
三四五才醒的程序员