目录
1.Tuple元组====》小括号
初始化后不可修改的List就是Tuple
list是【】,tuple是()
详细:Python Tuple(元组) tuple()方法 | 菜鸟教程 (runoob.com)
>>> t=(1,2)
>>> print(t)
(1, 2)
>>> print(t[0])
1
>>> t.append(3)
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
t.append(3)
AttributeError: 'tuple' object has no attribute 'append'
>>> t.pop(1)
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
t.pop(1)
AttributeError: 'tuple' object has no attribute 'pop'
>>> t[0]=2
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
t[0]=2
TypeError: 'tuple' object does not support item assignment
>>>
从上可以看出不能修改
Tuple之括号歧义
>>> t=(1) #当成表达式来计算
>>> print(t)
1 #如果是tuple的话,应该是(1),t为整形变量
>>> t=(1,) #用逗号声明这是个 tuple,且只有一个元素1;
>>> print(t)
(1,)
>>>
Tuple之可变
tuple元素是变量时,无法改变
>>> a=1
>>> t=(a,4)
>>> print(t)
(1, 4)
>>> a=3 #改变变量
>>> print(t) #没有变
(1, 4)
>>> t=(a,4) #再次定义
>>> print(t) #变了
(3, 4)
tuple元素是列表list
>>> t=('hi',['haha',2,4])
>>> print(t)
('hi', ['haha', 2, 4])
>>> t[1].pop(0) #删除
'haha' #删除
>>> print(t)
('hi', [2, 4]) #删除成功
>>> t[1].append('djk')
>>> print(t)
('hi', [2, 4, 'djk'])
>>>
2.Dict字典===>大括号+键名+逗号+键值
>>> a={'a':1,'name':44} #{}声明dict,逗号分割元素 '键名':值
>>> print(a)
{'a': 1, 'name': 44}
>>> print(a['name']) #访问某一元素
44
>>> a['name']=22 #可修改
>>> print(a['name'])
22
>>> print(a.get('name')) #get()方法的好处是,当a中无name这个键名时,不报错,返回None
22
>>> print(a.get('no'))
None
>>> print(a.get('no',"默认值"))
默认值
>>> a['add']=55 #可添加
>>> print(a)
{'a': 1, 'name': 22, 'add': 55} #添加内容不一定放到最后,是无序的
#查询某一元素是否在a内
>>> 'add' in a #语法: '键名' in dict名
True #电脑判定给出的答案
>>> a.keys() #查键名
dict_keys(['a', 'name', 'add'])
>>> del a['name'] # 删除键是'Name'的条目
>>> print(a)
{'a': 1, 'add': 55}
#另
#dict.clear() # 清空字典所有条目
#del dict # 删除字典
特性:
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住
2)键必须不可变,所以可以用数字,字符串或元组充当,所以用列表list就不行
字典内置函数&方法:Python 字典(Dictionary) | 菜鸟教程 (runoob.com)
3.Set==》大括号+逗号
>>> L={'a','b','a'}
>>> print(L)
{'b', 'a'}
>>> s=set(L)
>>> print(s)
{'b', 'a'}
>>> s.add('c')
>>> print(s)
{'b', 'c', 'a'}
>>> s.add('c') #dict键名重名会覆盖,添加一样的,Set中无重复的键名
>>> print(s)
{'b', 'c', 'a'}
#删除
>>> s.remove('c')
>>> print(s)
{'b', 'a'}
#不能添加列表list
>>> s.add([1,2,3])
Traceback (most recent call last): #报错了
File "<pyshell#31>", line 1, in <module>
s.add([1,2,3])
TypeError: unhashable type: 'list'