python学习笔记55-67

1.前言

隔离日记DAY4,今天好困,学习状态没有前两天好,呜呜呜。

2.学习内容

1.列表元素的排序

 lst=[20,40,10,98,54]
 print('排序前的列表',lst,id(lst))
 #开始排序,调用列表对象的sort方法,默认升序排序
 lst.sort()
 print('排序后的列表',lst,id(lst))#id排序前后相同,还是在原列表的基础上进行的
 ​
 #通过指定关键字参数,将列表元素降序排列
 lst.sort(reverse=True)#reverse=True表示降序排列      reverse=False表示降序排列
 print(lst)
 lst.sort(reverse=False)#reverse本身是翻转的意思,而sort函数默认是升序,那reverse=True代表翻转为真,则为降序反之亦然'''
 print(lst)
 ​
 print('---------------使用内置函数sorted()对列表进行排序,将产生新的列表对象--------')
 lst=[20,40,10,98,54]
 print('原列表',lst)
 #开始排序
 new_list=sorted(lst)
 print(new_list)
 #指定关键字参数,实现列表元素的降序排列
 desc_list=sorted(lst,reverse=True)
 print(desc_list)
  • 1.lst.sort()这个语句能够将lst列表进行升序排列(调用列表对象的sort方法,默认升序排序)

  • 2.lst.sort(reverse=True)#reverse=True表示降序排列 reverse=False表示降序排列 lst.sort(reverse=False)#reverse本身是翻转的意思,而sort函数默认是升序,那reverse=True代表翻转为真,则为降序反之亦然'''

  • 3.使用内置函数sorted()对列表进行排序,与lst.sort不同的是sorted()将产生新的列表对象 new_list=sorted(lst) print(new_list)

  • 4.指定关键字参数,实现列表元素的降序排列 desc_list=sorted(lst,reverse=True) print(desc_list)

2.列表生成式

 lst=[i*i for i in range(1,10)]
 print(lst)
 ​
 '''列表中的元素的值为2 4 6 8 10'''
 lst2=[i*2 for i in range(1,6)]
 print(lst2)

[1, 4, 9, 16, 25, 36, 49, 64, 81] [2, 4, 6, 8, 10]

3.字典的创建

 '''字典的创建方式'''
 '''使用{}创建字典'''
 score={'张三':100,'李四':98,'王五':45}
 print(score)
 print(type(score))
 ​
 '''内置函数dict()'''
 student=dict(name='jack',age='20')
 print(student)
 '''空字典'''
 d={}
 print(d)

有两种字典的创建方法

  • 1.'''使用{}创建字典''' score={'张三':100,'李四':98,'王五':45} print(score) print(type(score) #<class 'dict'>

  • 2.'''内置函数dict()''' student=dict(name='jack',age='20') print(student) #{'name': 'jack', 'age': '20'}

4.字典元素的获取

 '''获取字典中的元素'''
 score={'张三':100,'李四':98,'王五':45}
 '''第一种方式,使用[]'''
 print(score['张三'])
 #print(score['陈六']) #KeyError: '陈六'
 ​
 '''第二种方式,使用get()方法'''
 print(score.get('张三'))
 print(score.get('陈六'))#None
 print(score.get('麻七',99))#99是在‘麻七‘所对value不存在时,提供的一个默认值

有两种方法获取字典中的元素

  • 1.使用[ ],直接就print(score['张三'])

  • 2.使用get(),直接就print(score.get('张三'))

注意二者区别是在于,当你取获取一个字典中不存在的元素时,使用print(score())会直接报错,而使用print(score

.get())会显示None而不会报错.

注意当用第二种方法获取字典中元素时,如print(score.get('麻七',99))#99是在‘麻七‘所对value在字典中不存在时,提供的一个默认值,就是代表 麻七为key时,它的value为99

5.字典元素的增删改操作

 '''key的判断'''
 score={'张三':100,'李四':98,'王五':45}
 print('张三'in score)
 print('张三' not in score)
 ​
 del score['张三']#删除指定的key—value对
 #score.clear()#清空字典元素
 print(score)
 score['陈六']=98 #新增元素
 print(score)
 ​
 score['陈六']=100#修改元素
 print(score)

注意最后新增和修改是一样的,score['陈六']=98 新增了陈六:98,而score['陈六']=100把陈六:98修改为陈六:100

6.获取字典视图

 score={'张三':100,'李四':98,'王五':45}
 #获取所有的key
 keys=score.keys()
 print(keys)
 print(type(keys))
 print(list(keys))#将所有key组成的视图转成列表
 ​
 #获取所有的value
 values=score.values()
 print(values)
 print(type(values))
 print(list(values))
 ​
 #获取所有的key-value对
 items=score.items()
 print(items)
 print(list(items))#转换之后的元素是由元组组成(元组在下一章讲解)
  • 获取所有的key,首先知道,字典中key与value是一组.可以使用keys=score.keys()获取所有的key,还可以用print(list(keys))将所有key组成的视图转成列表.

  • 获取所有的value,用values=score.values()语句即可

  • 获取所有的key-value对,用items=score.items(),我也不知道为啥叫item,可能item就是key-value对吧

7.字典元素的遍历

 scores={'张三':100,'李四':98,'王五':45}
 #字典元素的遍历
 for item in scores:
     print(item,scores[item],scores.get(item))

遍历的意思就是将其所有元素一一打印出来...

 for item in scores:
     print(scores.get(item))

100 98 45

为啥这个输出出来仅仅是value呢?而不是一对?

8.字典的特点

d={'name':'张三','name':'李四'}#key不允许重复
print(d)

d={'name':'张三','nikename':'张三'}#value重复
print(d)

lst=[10,20,30]
lst.insert(1,100)
print(lst)
d={lst:100}#TypeError: unhashable type: 'list'  列表是可变对象 不允许作为key
print(d)
  • 字典中key不可以重复,而value可以重复

  • d={lst:100} TypeError: unhashable type: 'list'列表是可变对象 不允许作为key

9.字典生成式

items=['fruits','books','others']
prices=[96,78,85]

d={item.upper():price   for item,price in zip(items,prices) }#item.upper()能让item列表里的数变成大写
print(d)

先写两个列表,如items=['fruits','books','others'] prices=[96,78,85]

要想让这两个列表的元素相对应,生成字典,则d={item.upper():price for item,price in zip(items,prices) }

.upper()这个部分能让item列表里的数变成大写

10.什么是元组

python 的元组与列表类似,不同之处在于元组的元素不能修改。

元组使用小括号 ( ),列表使用方括号 [ ]

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

  • 不可变序列:字符串 元组 没有增删改操作

  • 可变序列: 列表 字典 可以增删改操作 且地址不发生改变

11.元组的创建方式

'''元组的创建方式'''
'''最常见的创建方式'''
'''第一种创建方式,使用()'''
t=('python','world',98)
print(t)
print(type(t))#<class 'tuple'>

t2='python','world',98   #可以不写小括号
print(t2)
print(type(t2))

t3='python'
print(t3)

'''第二种创建方式,使用内置函数tuple()'''
t1=tuple(('python','world',98))
print(t1)
print(type(t1))#<class 'tuple'>

2.结束语

隔离DAY4快要over了,在刚才整理笔记的时候听说个不太好的消息,下月五号有一个研究生茶话会,我又有上台演出的机会了!可现在还在隔离,我现在就希望能尽快出去,错过了篮球赛,不想再错过这次演出的机会...晚安!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值