元组,字典,集合的基本操作
python—元组(tuple)基本操作
元组被称为只读列表,数据可被查询,但不能被修改,类似于列表的切片操作,元组写在小括号里面()元素之前用逗号隔开
对于一些不想被修改的数据,可以用元组来保存
创建元组
1)创建一个空元组
tup = ( )
print (tup)
print (type(tup)) == 使用type函数查看类型==
输出结果
()
<class ‘tuple’>
2)创建元组 (只有一个元素时,在元素后面加上逗号)
tup = (1,) 元组中只有一个元素时,在元素后面加上逗号,否则会被当成其他数据类型处理
print (tup)
print (type(tup)) 使用type函数查看类型
输出结果
(1,)
<class ‘tuple’>
tup = (1) 不加逗号,会被当成其他数据类型处理
print (tup)
print (type(tup))
3)创建元组(多个元素)
tup = (1,2,[“a”,“b”,“c”],“a”)
print (tup)
输出结果
(1, 2, [‘a’, ‘b’, ‘c’], ‘a’)
4)将列表转化为元组(多个元素)
list_name = [“shijuntong”,“hahaha”,“haoshuai”]
tup = tuple(list_name) 将列表转为元组
print(type(list_name)) 查看list_name类型,并将结果打印出来
print(type(tup)) 查看tup类型,并将结果打印出来
print (tup)
5)查询
tup = (1, 2, [‘a’, ‘b’, ‘c’], ‘d’, ‘e’, (‘gu’, ‘tang’))
print (“tup[0] =”,tup[0]) ( 打印索引为0的元素)
输出结果
tup[0] = 1
print (“tup[1:] =”,tup[1:]) (从索引为1到最后一个元素)
输出结果
tup[1:] = (2, [‘a’, ‘b’, ‘c’], ‘d’, ‘e’, (‘gu’, ‘tang’))
print (“tup[:-1] =”,tup[:-1]) 到倒第二个元素但不包含第二个
输出结果
tup[:-1] = (1, 2, [‘a’, ‘b’, ‘c’], ‘d’, ‘e’)
print (“tup[1::1] =”,tup[1::1]) 等价于tup[1:] 从左到右一个个去取,步长为1
输出结果
tup[1::1] = (2, [‘a’, ‘b’, ‘c’], ‘d’, ‘e’, (‘gu’, ‘tang’))
print (“tup[1::2] =”,tup[1::2]) 从左到右隔一个去取 步长为2
输出结果
tup[1::2] = (2, ‘d’, (‘gu’, ‘tang’))
print (“tup[::-1]”,tup[::-1]) 反向输出 步长为1
输出结果
tup[::-1] ((‘gu’, ‘tang’), ‘e’, ‘d’, [‘a’, ‘b’, ‘c’], 2, 1)
print (“tup[::-2]”,tup[::-2]) == 反向输出 步长为2(隔一个去取))==
输出结果
tup[::-2] ((‘gu’, ‘tang’), ‘d’, 2)
6)del 删除 (元素对象不支持删除,但是可以删除整个元组变量)
up = (‘tang’, ‘guo’, ‘li’,‘xiu’)
del tup[0] 元素对象不支持删除
print (tup)
输出结果
TypeError: ‘tuple’ object doesn’t support item deletion
tup = (‘tang’, ‘guo’, ‘li’,‘xiu’)
del tup 删除
print (tup) del tup ,内存已删除,在打印将提示未定义
输出结果
NameError: name ‘tup’ is not defined
字典
字典也是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据。
比如有份成绩表数据,语文:79,数学:80,英语:92,这组数据看上去像两个列表,但这两个列表的元素之间有一定的关联关系。如果单纯使用两个列表来保存这组数据,则无法记录两组数据之间的关联关系。
为了保存具有映射关系的数据
Python 提供了字典,字典相当于保存了两组数据,其中一组数据是关键数据,被称为 key
另一组数据可通过 key 来访问,被称为 value。
形象地看,字典中 key 和 value 的关联关系如图 1 所示:
图 1 字典保存的关联数据
由于字典中的 key 是非常关键的数据,而且程序需要通过 key 来访问 value,因此字典中的 key 不允许重复。
程序既可使用花括号语法来创建字典,也可使用 dict() 函数来创建字典。实际上,dict 是一种类型,它就是 Python 中的字典类型。
在使用花括号语法创建字典时,花括号中应包含多个 key-value 对,key 与 value 之间用英文冒号隔开;多个 key-value 对之间用英文逗号隔开。
如下代码示范了使用花括号语法创建字典:
scores = {‘语文’: 89, ‘数学’: 92, ‘英语’: 93}
print(scores) 空的花括号代表空的dict
empty_dict = {}
print(empty_dict) 使用元组作为dict的key
dict2 = {(20, 30):‘good’, 30:‘bad’}
print(dict2)
上面程序中第 1 行代码创建了一个简单的 dict,该 dict 的 key 是字符串,value 是整数;第 4 行代码使用花括号创建了一个空的字典;第 7 行代码创建的字典中第一个 key 是元组,第二个 key 是整数值,这都是合法的。
需要指出的是,元组可以作为 dict 的 key,但列表不能作为元组的 key。这是由于 dict 要求 key 必须是不可变类型,但列表是可变类型,因此列表不能作为元组的 key。
在使用 dict() 函数创建字典时,可以传入多个列表或元组参数作为 key-value 对,每个列表或元组将被当成一个 key-value 对,因此这些列表或元组都只能包含两个元素。
集合
一、集合的基本属性:1 无序性。2 不重复性
List1=[1,3,5,2,6,9,4,3,2,6,5]
print(‘未转换的结果’,List1)
List1=set(List1)
print(‘转换后的结果’,List1)
set函数是用来将List1 的数据类型转换为集合的
运行结果:
二、交集
List1=[1,3,5,2,6,9,4,3,2,6,5]
List2={2,4,6,8,1,3,}
print(‘未转换的结果’,List1)
List1=set(List1)
print(‘转换后的结果’,List1)
print(‘List2:’,List2)
交集
print(‘List1和List2的交集为(方法一):’,List1.intersection(List2))
print(‘List1和List2的交集为(法方二):’,List1&List2)
三、集合的增删改
List1=[3,5,2,6,9,4,3,2,6,5]
List1.add(666)
print(‘增加之后的List1:’,List1)
List1.update([66,888])
print(‘修改之后的List1:’,List1)
#List1.clear()#全部删除
#print(‘删除之后的List1:’,List1.pop())#随机删除
#List1.discard(666)#制定删除
print(‘删除之后的List1:’,List1)