Python3基础知识之元组、集合、字典

时间:2023-03-09 05:11:48
Python3基础知识之元组、集合、字典

1、元组

元组特点
元组是不可变的
两个元组可以做加法,不能做减法

元组的方法

>>> S
('a', 'b', 'c', 'd', 'e')
>>> S=('a','b','c','d','e','c','f')
.count(x)统计某个元素在元组中出现的次数
>>> S.count('c')
2
>>> S.count('a')
1
.index(x)从列表中找到某个值第一个匹配项的索引位置
>>> S.index('a')
0
>>> S.index('c')
2
>>>
如果要修改元组就直接用list把元组变成列表
>>> a=(1,2,3,4)
>>> a
(1, 2, 3, 4)
>>> a=list(a)
>>> a
[1, 2, 3, 4]
>>>
同理要将list变成元组只需要用tuple即可
>>> a=tuple(a)
>>> a
(1, 2, 3, 4)
>>>

2、集合

特点

集合是无序的,并且元素不重复,集合是可变对象
>>> S={1,2,3,4,4,5,5,56,6,6}
>>> S
{1, 2, 3, 4, 5, 6, 56}
>>>

不能用a={}来创建集合
创建集合的方法用set函数
创建空集合
>>> b=set()
>>> b
set()
>>> type(b)
<class 'set'>
>>>
集合的属性及方法
s.add()添加单个元素
>>> a
{1, 2, 3, 4}
>>> a.add(10)
>>> a
{1, 2, 3, 4, 10}
>>>
s.update()添加多个元素
>>> b
{3, 4, 5, 6}
>>> b.update((11,22,33,44,55)) #注意update中要用元组
>>> b
{33, 3, 4, 5, 6, 11, 44, 22, 55}
>>>
s.remove()移除元素
>>> a
{1, 2, 3, 4, 10}
>>> a.remove(10)
>>> a
{1, 2, 3, 4}
>>>
s.clear()清空集合
>>> b
{33, 3, 4, 5, 6, 11, 44, 22, 55}
>>> b.clear()
>>> b
set()
>>>
集合运算

交集

>>> a={1,2,3,4}
>>> b={3,4,5,6}
>>> a & b
{3, 4}

并集
>>> a | b
{1, 2, 3, 4, 5, 6}
>>> a - b
{1, 2}
>>>

差集
>>> b -a
{5, 6}
>>>

3、字典
字典的创建:{key:value}
>>> F={'a':1,'b':2}
>>> F
{'a': 1, 'b': 2}
>>>
或者dict(a=1,b=2)
用dict()创建字典,键如果是字符串,则可以不用加引号
>>> D=dict(a=1,b=2)
>>> D
{'a': 1, 'b': 2}
>>>
特点:
1、字典中的元素是无序的
2、不允许同一个键出现两次,即键必须唯一,如果出现两次则最后一次为准
3、键必须不可变,所以可以用数字,字符串或元组充当,而列表就不行,列表时可变的
字典添加和修改
新值对应的键名如果存在,就是修改操作,否则就是添加操作
>>> person=dict(a=1,b=2)
>>> person
{'a': 1, 'b': 2}
>>> person['a']
1
>>> person['a']=100
>>> person['c']=19
>>> person
{'a': 100, 'b': 2, 'c': 19}
>>>

in not in 判断键是否在字典中存在,在返回true,否则返回false
字典的属性及方法
>>> person
{'a': 100, 'b': 2, 'c': 19}
.update({})在字典中添加多个项
>>> person
{'b': 2, 'c': 19}
>>>
>>> person.update({'n':111,'m':222,'h':333})
>>> person
{'b': 2, 'c': 19, 'n': 111, 'm': 222, 'h': 333}
>>>
.items()返回字典的各个项
>>> person.items()
dict_items([('a', 100), ('b', 2), ('c', 19)])
.keys()返回字典的键
>>> person.keys()
dict_keys(['a', 'b', 'c'])
.values()返回字典的值
>>> person.values()
dict_values([100, 2, 19])
>>>
.get(k)如果k存在,则返回k值,否则返回None
>>> person.get('k')
>>> print(person.get('k'))
None
.get(k,x)如果键k在,返回键k的值,不存在则返回x
>>> print(person.get('k','x'))
x
>>>
.pop(k)返回并移除键k所对应的元素,不存在职责抛出异常
>>> person
{'a': 100, 'b': 2, 'c': 19}
>>>
>>> person.pop('k')
Traceback (most recent call last):
File "<pyshell#92>", line 1, in <module>
person.pop('k')
KeyError: 'k'
>>>
>>> person.pop('a')
100
>>> person
{'b': 2, 'c': 19}
>>>
.pop(k,x)返回并移除键k所对应的元素,不存在则返回x
>>> person
{'a': 100, 'b': 2, 'c': 19}
>>> person.pop('k','x')
'x'
>>>
>>> person.pop('a','n')
100
>>> person
{'b': 2, 'c': 19}
>>>

字典的键对应的值如果是整型或者字符串,那么可以直接做加法运算(加要加同样的类型)

>>> person
{'b': 2, 'c': 19, 'n': 111, 'm': 222, 'h': 333}
>>> person['b'] +=10
>>> person['b']
12
>>>

>>> person['e']='abcd'
>>> person
{'b': 12, 'c': 19, 'n': 111, 'm': 222, 'h': 333, 'e': 'abcd'}
>>> person['e'] += 'cool'
>>>
>>> person['e']
'abcdcool'
>>>

4、常用运算符

算术运算符:+,-,*,/,%,**,//
赋值运算符:=,+=,-=,*=,/=,%= **=
比较运算符:==,!=,>,<.>=,<=
成员运算符:in,not in
身份运算符:is,is not
判断两个名字是否指向同一个对象,当id相同是返回True(==比较运算符)
逻辑运算符:and,or,not
and(与)两个条件都满足则成立返回True
or(或)有一个条件满足则成立返回True
not(非)取反

例子练习

一、已知字典ainfo = {'name':'lily','age':20}
1.加入两项使得输出的结果:
ainfo = {'name':'lily','age':20,'gender':'female','class':10}
>>> ainfo.update({'gender':'female','class':10})
>>> ainfo
{'name': 'lily', 'age': 20, 'gender': 'female', 'class': 10}
>>>
2.访问字典中的所有项,访问字典的键,访问字典中的值
>>> ainfo.items()
dict_items([('name', 'lily'), ('age', 20), ('gender', 'female'), ('class', 10)])
>>> ainfo.keys()
dict_keys(['name', 'age', 'gender', 'class'])
>>> ainfo.values()
dict_values(['lily', 20, 'female', 10])
>>>
二、将这三项内容创建字典,按下面规则添加到同一个对象中:
(name = 'lily',age= 20,gender = 'female',class = 10)
(name ='jack',age= 25,gender ='male',class =10)
(name ='jane',age= 19,gender ='female',class =10)

>>> d1={'name':'lily','age':20,'gender':'female','class':10}
>>> d1
{'name': 'lily', 'age': 20, 'gender': 'female', 'class': 10}
>>> d2=dict(name='jack',age=25,gender='male',Class=10) #--->该方法会把键转换成字符串
>>> d2
{'name': 'jack', 'age': 25, 'gender': 'male', 'Class': 10}
>>> d3=dict(name='jane',age=19,gender='female',Class=10)
>>> d3
{'name': 'jane', 'age': 19, 'gender': 'female', 'Class': 10}
>>>
1.将这三项内容创建的三个字典放到一个列表里。
[{},{}]
>>> List=[d1,d2,d3]
>>> List
[{'name': 'lily', 'age': 20, 'gender': 'female', 'class': 10}, {'name': 'jack', 'age': 25, 'gender': 'male', 'Class': 10}, {'name': 'jane', 'age': 19, 'gender': 'female', 'Class': 10}]
>>>
2.将这三项内容创建的三个字典放到一个字典里,要求字典以个人姓名为键,
其他信息组成的字典为姓名这个键所对应的值。(字典里面嵌套字典){'lily':{},'jack':{}}
例如info = {'lily':{'age':20,'gender':'female','Class':10}}

>>> ainfo[d1.pop('name')]=d1
>>> ainfo
{'lily': {'age': 20, 'gender': 'female', 'class': 10}}
>>>
>>> ainfo[d2.pop('name')]=d2
>>> ainfo
{'lily': {'age': 20, 'gender': 'female', 'class': 10}, 'jack': {'age': 25, 'gender': 'male', 'Class': 10}}
>>>
>>> ainfo[d3.pop('name')]=d3
>>> ainfo
{'lily': {'age': 20, 'gender': 'female', 'class': 10}, 'jack': {'age': 25, 'gender': 'male', 'Class': 10}, 'jane': {'age': 19, 'gender': 'female', 'Class': 10}}
>>>

d1.pop('name')取值之后返回name对应的值,剩下的d1就是去掉'name';'lily'之后的部分