元组
1、元组是以小括号括起来的数据形式,且元组不可进行修改,故对元组,只能进行查询
my_tuple = (1,2,3,'hi')
2、元组内可以放置任何格式的数据,且可以通过下标获取里面的元素。用 元组名[下标] 的方式获取。下标从0开始,也可以用负数下标
my_tuple = (1,2,3,'hi')
print(my_tuple[0])
print(my_tuple[-1])
3、如元组内存在可变类型数据(如列表),那么可以对该可变类型数据进行修改。但是这里需要注意,改变的是这个可变数据元素的内容,元组内的元素并没有改变
my_list = [5,6,7]
my_tuple = (1,2,3,my_list)
my_list[1] = 'hi'
print(my_tuple) -> 输出(1, 2, 3, [5, 'hi', 7])
4、如元组内只用一个元素,需在该元素后加上逗号,否则将会被认为是括号内元素的数据类型
my_tuple = ('hello',) ->数据类型为tuple
my_tuple1 = ('hi') -> 数据类型为str
5、返回元组中元素的下标,用 .index(指定数据)
my_tuple = (1,2,'hi',3.14)
print(my_tuple.index('hi'))
6、计算元组内某一元素出现的次数,用 .count(指定数据)
my_tuple = (1,2,'hi',3.14,1)
print(my_tuple.count(1))
7、用 for…in 的方式可以对元组进行遍历
my_tuple = (1,2,'hi',3.14,1)
for i in my_tuple:
print(i)
8、通过遍历同时获取元组内元素和对应下标,可以用
my_tuple = (1,2,'hi',3.14,1)
for index,value in enumerate(my_tuple):
print(index,value)
9、创建空元组,直接给元组名赋值内容为空的一对小括号即可
my_tuple = ()
print(type(my_tuple)) -> 数据类型为tuple
集合
1、集合是以大括号括起来的数据形式,可以在集合内填写任意数据类型。字典也是用大括号,但字典内的数据必须为键值对
2、集合内的数据不能重复,且数据是无序的(不能通过下标获取集合内的数据,也无法修改指定数据)
3、集合的增删查
增:用 .add() 进行元素的添加
my_set = {1,2,'hi',3.14}
my_set.add(3)
print(my_set)
删:可以用 .remove() 和 .discard() 两种方式
my_set = {1,2,'hi',3.14}
my_set.remove(1)
my_set.discard(2)
print(my_set)
两种方式都可以删除集合内的指定数据。差异在于,如指定删除的数据在集合内不存在,那么.remove()在运行时会报错;.discard()在运行时不报错,列表内元素不改变
查:我们无法通过下标获取列表中的元素,可以用for…in的方式遍历出里面的元素
4、情况列表中的数据,可以用 .clear()
5、创建空集合时,不能直接给集合名之间赋值一对空的大括号,那是创建空字典的方法;要给集合名赋值 set()
my_set = set()
print(type(my_set)) -> 数据类型为set
6、list和set可以进行互换,可以用来进行列表的去重
list1 = [1,2,3,1]
my_set = set(list1)
list2 = list(my_set)
print(list2) -> 输出[1, 2, 3]
7、求两个集合的交集,可以用 & 符号链接两个集合,或是用.intersection()
set1 = {1,2,3,4}
set2 = {1,3,5,7}
print(set1 & set2)
print(set1.intersection(set2))
8、求两个集合的并集,可以用 | 符号链接两个集合,或是用.union()
set1 = {1,2,3,4}
set2 = {1,3,5,7}
print(set1 | set2)
print(set1.union(set2))
9、集合之间用减号连接,即为作差,运行的结果受到集合作为减数或被减数时的影响
set1 = {1,2,3,4}
set2 = {1,3,5,7}
print(set1 - set2) -> 输出{2, 4}
print(set2 - set1) -> 输出{5, 7}
可见,两个集合相减,集合内相同的值消除,余下的值是作为被减数的集合去掉重复值后多出的元素。作为减数的集合,其值不会出现在结果中
一个总结
在列表、字典、元组、集合中,除元组为不可变类型数据外,其他三种皆为可变类型。当进行可变类型数据修改时,直接在原变量名后进行操作即可,原数据变化后,并不会返回一个新的列表、字典或集合,即没有返回值,不需要变量承接