Python学习笔记(二)

目录

1.列表元素的排序

2.列表生成式

3.字典的概念

4.字典的创建

5.获取字典中元素

6.字典的常用操作

7.获取字典视图的三个方法

8.字典元素的遍历

9.字典生成式

10.元组的概念

11.元组的创建

12.元组:不可变序列

13.元组的遍历


1.列表元素的排序

  • 调用sort()方法,默认升序,指定reverse=True进行降序排序
lst=[20,80,60,40]
lst.sort()
print(lst)      #[20,40,60,80],即在原列表基础上更改,id不变

#指定reverse参数,进行降序排序
lst.sort(reverse=True)
print(lst)      #[80,60,40,20],降序排序
  • 调用内置函数sorted(),默认升序,指定reverse=True进行降序排序,原列表不发生改变
lst=[20,80,60,40]
new_lst=sorted(lst)     #产生一个新的列表对象
print(new_lst)          #[20,40,60,80],id改变

#指定reverse参数,进行降序排序
new_lst=sorted(lst,reverse=True)
print(new_lst)          #[80,60,40,20],降序排序

2.列表生成式

lst=[i for i in range(10)]
print(lst)                    #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

lst=[i*i for i in range(10)]
print(lst)                    #[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

lst=[i for i in range(2,11,2)]
print(lst)                    #[2, 4, 6, 8, 10]

3.字典的概念

  • 以键值对的方式存储数据,字典是一个无序的序列(列表是有序的),因为在往字典中存数据时,是要经过hash函数的,第1个存的数据不一定放在第一个位置上
  • 根据key查找value所在的位置
  • key不允许重复,value可以重复
  • 字典中的key是不可变对象
  • 字典会浪费较大的内存,是一种使用空间换时间的数据结构

4.字典的创建

  • 使用花括号(最常用)
scores={'张三':100,'李四':98,'王五':45}     #张三、李四、王五是键,100、98、45是值
  • 使用内置函数dict()
dict(name='jack',age=20)       #name、age是键,jack、20是值

5.获取字典中元素

  • [key]获取
scores['张三']
  • get(key)获取
scores.get('张三')
  • 二者区别:[]:如果字典中不存在指定的key,抛出keyError异常;get():若不存在指定key,不会抛出keyError异常,而是返回None,可以通过参数设置默认的value,以便指定的key不存在时返回
scores={'张三':100,'李四':98,'王五':45}
print(scores['张三'])           #100
print(scores.get('张三'))       #100

#当指定的键不存在时
#print(scores['张七'])        #抛出KeyError异常
#print(scores.get('张七'))      #None

#通过参数设置默认的value,以便指定的key不存在时返回
print(scores.get('张七',99))    #99

6.字典的常用操作

  • 判断key是否存在:in、not in
scores={'张三':100,'李四':98,'王五':45}
print('张三' in scores)            #True
print('张三' not in scores)        #False
  • 字典元素的删除:del、clear()
del scores['张三']       #删除指定的key-value对
scores.clear()           #清空字典中所有的元素
  • 字典元素的新增
scores['Jack']=90

7.获取字典视图的三个方法

  • keys():获取字典中所有key
scores={'张三':100,'李四':98,'王五':45}
keys=scores.keys()
print(keys)                   #dict_keys(['张三', '李四', '王五'])
print(list(keys))             #将所有键组成的视图转成列表,['张三', '李四', '王五']
  • values():获取字典中所有的value
scores={'张三':100,'李四':98,'王五':45}
values=scores.values()
print(values)                   #dict_values([100, 98, 45])
print(list(values))             #将所有值组成的视图转成列表,[100, 98, 45]
  • items():获取字典中所有key-value对
scores={'张三':100,'李四':98,'王五':45}
items=scores.items()
print(items)                   #dict_items([('张三', 100), ('李四', 98), ('王五', 45)])
print(list(items))             #将所有键值对组成的视图转成列表,[('张三', 100), ('李四', 98), ('王五', 45)],列表中每一个元素为一个元组

8.字典元素的遍历

scores={'张三':100,'李四':98,'王五':45}
for item in scores:
    print(item,scores[item])        #item获取到的是字典中的键

9.字典生成式

  • 内置函数zip():用于将可迭代的对象作为参数,将对象中对应的元素打包成元组,然后返回由这些元组组成的列表
items=['Fruits','Books','Others']
prices=[96,78,85]
d={item.upper():price for item,price in zip(items,prices)}
print(d)        #{'FRUITS': 96, 'BOOKS': 78, 'OTHERS': 85}
#备注:若两个列表元素个数不相等,在打包的过程中,会以元素少的列表为基准

10.元组的概念

  • python内置的数据结构之一,是一个不可变序列,没有增、删、改操作(Python中共两个不可变序列,另一个是字符串,改变的话会生成新的对象,id改变了,地址更改了)

11.元组的创建

#直接小括号
t=('Python','hello',90)
#也可以省略小括号
t='Python','hello',90
#使用内置函数tuple()
t=tuple(('Python','hello',90))
#只包含一个元组的元素需要使用逗号和小括号,都不能省,否则会当做本身类型
t=(10,)    #不加逗号的话,会被认为是int类型

#空元组的创建
t=()
t=tuple()

12.元组:不可变序列

t=(10,[20,30],9)
print(t)                           #(10, [20, 30], 9)
print(t[0],type(t[0]))             #10 <class 'int'>
print(t[1],type(t[1]))             #[20, 30] <class 'list'>
print(t[2],type(t[2]))             #9 <class 'int'>

#在该元组中t[1]是一个列表,是可变序列,所以可以为列表中新增元素,对象地址不会改变
t[1].append(40) 
print(t)                           #(10, [20, 30, 40], 9)

13.元组的遍历

t=('Python','hello',90)
#索引获取
print(t[0])       #要遍历的话得先知道元组元素个数,否则会越界
#for -in遍历
for item in t:
    print(item)

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

biu~!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值