基础数据类型(内置方法2)

基础数据类型(内置方法2)

栈和队列

​ 栈:

​ 先进后出

​ 队:

​ 先进先出

#队列:
     l = []
     for i in range(3):          #  [1,2,3]
         l.append(i)             
         res = l.pop(0)
         print(res)
    
#堆栈:
l1 = []                          
for i in range(3):
    l1.append(i)
    res = l1.pop()
    print(res)

字典

大括号括起来,内部是一个一个k:v这样的键值对,中间以逗号隔开,k是对v的描述性信息,一般是字符串,

​ k是不可变类型

​ 整形,浮点型,字符串

​ v可以是任意类型

按k存取:可存可取

>>> d1 = {
...     'username': 'lyh',
...     'age': 18,
...     'hobbyes': ['eat', 'sleep'],
... }
>>> d1['username']
'lyh'
>>> d1['username'] = 'hrj'
>>> d1
{'username': 'hrj', 'age': 18, 'hobbyes': ['eat', 'sleep']}
>>> d1['level'] = 10
>>> d1
{'username': 'hrj', 'age': 18, 'hobbyes': ['eat', 'sleep'], 'level': 10}
'''
字典[key]取值,有就取出来,没有就新建一个键值对,有key后面重新赋值,就是改
'''
长度运算--len()
>>> d1 = {
...     'username': 'lyh',
...     'age': 18,
...     'hobbyes': ['eat', 'sleep'],
... }
>>> len(d1)
3
身份运算  in         not in

>>> d1 = {
...     'username': 'lyh',
...     'age': 18,
...     'hobbyes': ['eat', 'sleep'],
... }
>>> 'username' in d1
True
>>> 'level' not in d1
True

'''
参与字典成员运算的是字典的key
'''
删除 之 del
>>> d1 = {
...     'username': 'lyh',
...     'age': 18,
...     'hobbyes': ['eat', 'sleep'],
... }
>>>
>>> del d1['age']
>>> d1
{'username': 'lyh', 'hobbyes': ['eat', 'sleep']}

删除 之 pop
>>> d1 = {
...     'username': 'lyh',
...     'age': 18,
...     'hobbyes': ['eat', 'sleep'],
... }
>>> d1.pop('username')
'lyh'
>>> d1
{'age': 18, 'hobbyes': ['eat', 'sleep']
 
 '''
 同样,pop删除也是有返回值的
 '''

三键: keys()  values()   items()

keys() ----获取字典的所有k
>>> d1 = {
...     'username': 'lyh',
...     'age': 18,
...     'hobbyes': ['eat', 'sleep'],
... }
>>>
>>> d1.keys()
dict_keys(['username', 'age', 'hobbyes'])

values()
>>> d1 = {
...     'username': 'lyh',
...     'age': 18,
...     'hobbyes': ['eat', 'sleep'],
... }
>>> d1.values()
dict_values(['lyh', 18, ['eat', 'sleep']])

items()-------获取字典的所有value
>>> d1 = {
...     'username': 'lyh',
...     'age': 18,
...     'hobbyes': ['eat', 'sleep'],
... }
>>> d1.items()-------获取字典的所有键值对,,最后以一个列表套元组的形式
dict_items([('username', 'lyh'), ('age', 18), ('hobbyes', ['eat', 'sleep'])])

python2和python3的区别
'''
python3:
     dict_keys(['username', 'age', 'hobbyes'])
     dict_values(['lyh', 18, ['eat', 'sleep']])
     dict_items([('username', 'lyh'), ('age', 18), ('hobbyes', ['eat', 'sleep'])])

python2:
        >>> d1 = {
        ...     'username': 'lyh',
        ...     'age': 18,
        ...     'hobbyes': ['eat', 'sleep'],
        ... }
        >>>
        >>> d1.keys()
        ['username', 'age', 'hobbyes']
        >>> d1.values()
        ['lyh', 18, ['eat', 'sleep']]
        >>> d1.items()
        [('username', 'lyh'), ('age', 18), ('hobbyes', ['eat', 'sleep'])]
        
        python2中这些值都是直接打印出来,python3中生成这样一个一个小列表
'''
循环  

>>> d1 = {
...     'username': 'lyh',
...     'age': 18,
...     'hobbyes': ['eat', 'sleep'],
... }
>>> for i in d1:
...     print(i)
...
username
age
hobbyes

'''
参与字典循环的是key值
'''

>>> d1 = {
...     'username': 'lyh',
...     'age': 18,
...     'hobbyes': ['eat', 'sleep'],
... }
>>> for i in d1.values():
...     print(i)
...
lyh
18
['eat', 'sleep']

'''
这样参与循环的只是字典的value值
'''
>>> d1 = {
...     'username': 'lyh',
...     'age': 18,
...     'hobbyes': ['eat', 'sleep'],
... }
>>> for i in d1.items():
...     print(i)
...
('username', 'lyh')
('age', 18)
('hobbyes', ['eat', 'sleep'])

'''
这样参与循环的是字典的键值对,这里可以用前面学过的解压赋值的方法,用两个变量去做接收
'''
get() 方法:

>>> d1 = {
...     'username': 'lyh',
...     'age': 18,
...     'hobbyes': ['eat', 'sleep'],
... }
>>> d1.get('username')
'lyh'
>>> d1.get('sex')
>>> res = d1.get('sex')
>>> print(res)
None
>>> d1.get('username','hrj')
'lyh'
>>> d1.get('sex','男')
'男'

'''
字典的get()方法,直接字典点get('key'),如果有key则返回对应的value值,如果没有key则返回None,如果是直接按照key的方法取值,没有key则会报错。
get里面可以跟两个参数,如果key存在,不管后面跟什么只会返回字典中key对应的value值,如果key不存在,则会返回get括号里面的另外一个参数,默认其实就是None
'''
创建字典的方式
第一种:
dict({'k1':'v1','k2':'v2'})
'''
这种创建也就是解释器内部创建字典的方法
'''

第二种:
>>> dict(name = 'lyh', age = 18, sex = '男')
{'name': 'lyh', 'age': 18, 'sex': '男'}

第三种:
>>> l = [['name','lyh'],['age',18],['password',123]]
>>> dict(l)
{'name': 'lyh', 'age': 18, 'password': 123}

'''
这种方法可以通过for循环实现

d = {}
for i in l:
    d[i[0]] = i[1]
    
    
d = {}
for k,v in l:
    d[k] = v
'''
清空字典

>>> d1 = {
...     'username': 'lyh',
...     'age': 18,
...     'hobbyes': ['eat', 'sleep'],
... }
>>> d1.clear()
>>> d1
{}
快速生成一个字典:(fromkeys)

>>> l = ['name', 'sex', 'age',]
>>> dict.fromkeys(l,None)
{'name': None, 'sex': None, 'age': None}
popitem() --- 弹出一组键值对

>>> d1 = {
...     'username': 'lyh',
...     'age': 18,
...     'hobbyes': ['eat', 'sleep'],
... }
>>> d1.popitem()
('hobbyes', ['eat', 'sleep'])
>>> d1
{'username': 'lyh', 'age': 18}
'''
从尾部弹出一组键值对,以元组的形式返回
'''
setdefault() ---  健存在不修改,打印出字典中健对应的值,不存在则新建

>>> d1 = {
...     'username': 'lyh',
...     'age': 18,
...     'hobbyes': ['eat', 'sleep'],
... }
>>> d1.setdefault('age')
18
>>> d1.setdefault('sex','男')
'男'
>>> d1.setdefault('username','hrj')
'lyh'
>>>

'''
健存在不修改,打印出字典中健对应的值,不存在则新建
'''
updat()----更新

>>> d1 = {
...     'username': 'lyh',
...     'age': 18,
...     'hobbyes': ['eat', 'sleep'],
... }
>>> d1.update({'age':20})
>>> d1
{'username': 'lyh', 'age': 20, 'hobbyes': ['eat', 'sleep']}
>>> d1.update({'username' : 'hrj'})
>>> d1
{'username': 'hrj', 'age': 20, 'hobbyes': ['eat', 'sleep']}

'''
健存在则修改,不存在则创建
'''

元组

小括号括起来,可以存放多个任意类型的元素,用逗号隔开

元组不可变,主要是用来读

类型转换:

支持for循环的都可以转成元组(tuple)

>>> l = [1,2,3,4,]
>>> tuple(l)
(1, 2, 3, 4)

'''
元组的定义:
  s1 = set()
'''

#特别注意:
>>> s1 = (1)
>>> type(s1)
<class 'int'>
>>> s1 = (1,)
>>> type(s1)
<class 'tuple'>

'''
在元组中如果只有一个值,后面必须跟逗号,负责就是其他类型,
由此得出,python中,任意容器类型定义完值后面最好跟一个逗号,以逗号结尾
'''
按索引取值:只能取,不能改,如果元组中有其他类型,则这个类型可以修改

>>> t1 = (1,2,34,5,)
>>> t1[0]
1
>>> t1[-1]
5

'''
注意:::
  >>> t1 = (1,2,3,[4,5,6],)
>>> t1[3].append(8)
>>> t1
(1, 2, 3, [4, 5, 6, 8])   #  这里可以修改,
>>> t1 = (1,2,3)
>>> t1.append(4)
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'append'
>>> 
'''
切片,循环,长度运算,成员运算,与列表一致

集合

大括号括起来,内部可以存放(不可变类型)的多个元素,逗号隔开

元素只能是不可变类型

适用:

​ 关系运算

​ 去重操作

定义: set()

>>> s1 = {}
>>> type(s1)
<class 'dict'>

>>> s1 = set()
>>> type(s1)
<class 'set'>

'''
定义一个空的集合需要用到set关键字
'''
去重操作

>>> l = [1,2,3,4,5,3,1,2,41,42,4,422,444,2,1,2,2,2,]
>>> set(l)
{1, 2, 3, 4, 5, 422, 41, 42, 444}

'''
集合可以用来去重,但是去重之后呢,顺序也就乱了,因为集合是无序的
上述操作,也可以用for循环的方式实现
'''
关系运算

>>> s1 = {1,2,3,4,0,9}
>>> s2 = {1,2,3,6,7,8}
>>> s1 & s2                           交集
{1, 2, 3}
>>> s1 | s2                           并集
{0, 1, 2, 3, 4, 6, 7, 8, 9}
>>> s1 - s2                           差集
{0, 9, 4}
>>> s2 - s1                           差集
{8, 6, 7}
>>> s1 ^ s2                           并集-交集
{0, 4, 6, 7, 8, 9}

#如下所示,s2是s1的子集,s1是s2的父集
>>> s1 = {1,2,3,4,5}
>>> s2 = {1,2,3}
>>> s2 < s1
True
>>> s1 > s2
True
>>> s1 < s2
False
 
posted @ 2021-06-03 16:19  剧终cur  阅读(44)  评论(0)    收藏  举报