第二周第二天
一:列表相关操作
1.列表推导式
-
序列变换成列表
str = 'abc' list = [x for x in str] print(list) # ['a','b','c']
2.筛选(提取有用的,删除没用的)
scores = [85, 65, 20, 65, 95, ]
new_score = [x for x in scores if x >= 60]
print(new_score)
3.不统一的变换
nums = [19, 20, 15, 'zifucuan', 15, 65]
new_nums = [x*10 if type(x) == int else x for x in nums]
print(new_nums)
-
列表的加法和乘法运算
- 列表1+列表2 — 合并两个列表产生一个新的列表
a = [1, 2 , 3] b = ['后裔', '伽罗', '低某'] result = a + b print(result) #[1, 2, 3, '后裔', '伽罗', '低某']
-
乘法运算
- 列表中的值的元素重复N变
a = [1, 2 , 3] b = ['后裔', '伽罗', '低某'] result = a + b print(result*3) #[1, 2, 3, '后裔', '伽罗', '低某', 1, 2, 3, '后裔', '伽罗', '低某', 1, 2, 3, '后裔]
-
比较运算
- 元素顺序不相同的列表不相等
print([1,2] == [2,1]) # flase
- 两个不同类型的数据也可以判断相等,结果一定是false
print([1,2] == 'abc') # false
-
is的用法
is的实质是判断两个数据在存储空间的地址是否一样
print('is:' 2 is 2) # True
2:结论
-
结论一:
用数据给变量赋值的时候,如果数据是不可变的,那么会复用前面存储的值;如果数据是可变的,之前没有存储过,都会开辟新的空间
id(变量) — 获取变量中保存的数据在内部空间的地址
数字不可变
a = 200 b = 200 print(id(a), id(b)) # id 一样
列表可变
a = [100, 200] b = [100, 200] print(id(a), id(b)) # id 不一样
-
结论二:
如过用一个变量给另一个变量赋值,其实是让新的变量保存原来变量的地址
a = 200 b = a print(id(a), id(b)) # 地址相同
a = [100, 200] b = a print(id(a), id(b)) # 地址相同
3.结论三:
python中所有的变量都是指针变量 (变量保存数据的时候,保存的是数据在内存中的地址)
二:列表的相关函数和方法
-
相关函数
max、min、sum、sorted、len、list
1.1max和min:
max(序列) ---- 获取元素中的最大值
min(序列) ---- 获取元素中最小值
nums = [89, 9,464, 464, 564, 95, 777] print(max(nums)) print(min(nums))
2.sum(序列) (数字序列)
```python
nums = [89, 9,464, 464, 564, 95, 777]
print(sum(nums))
print(sum(range(101)))
```3.sorted
sorted(序列) ---- 将序列中的元素从小到大依次排列,以列表的形式返回
sorted(序列,revers= True) ---- 将序列中的元素从大到小依次排列,以列表的形式返回
nums = [89, 9,464, 464, 564, 95, 777] new_nums = sorted(nums) print(new_nums)
4.list
list(序列) ---- 将其他序列转换成列表(任何序列都可以转换成列表)
list1 = list('abc') print(list1) # ['a', 'b', 'c'] list2 = list(range(20,46)) print(list2)
-
相关方法
-
列表.clear() ---- 删除列表中所有的元素
song = ['关山酒', '我爱她'] song.clear() print(song) # []
-
2.列表.copy() ---- 返回一个和它原来一样的列表
song = ['关山酒', '我爱她']
song.copy()
3.列表.count(元素) — 返回元素在列表中出现的次数
nums = [89, 9,464, 464, 564, 95, 95, 777]
a = nums.count(9)
print(a)
4.列表extend(序列) – 将序列中的元素全部添加到列表中
nums = [89, 9,464, 464, 564, 95, 95, 777]
nums.extend(['123', 4656])
print(nums)
5.列表.index(元素) – 饭返回元素中的下标(从零开始的)如果元素有多个相同的就返回第一个,没有就报错
nums = [89, 9, 464, 464, 9, 564, 95, 95, 777]
print(nums.index(9))
6.列表.revers() — 逆序
nums = [89, 9, 464, 464, 9, 564, 95, 95, 777]
nums.reverse()
print(nums)
7.列表.sort() ---- 直接在原列表排序
字典
- 什么是字典:字典是容器型数据类型,将{}作为容器的标志,里面多喝元素用逗号隔开
{键1:值1, 键2:值2}
- 注意字典爆保存的数据其实是值,键的作用是对值的区分和说明
- 字典可变,支持增删改,字典是无序的,u支持下标操作
- 字典的元素必须是键值对
键:必须是不可变数据的、唯一的
值:任何类型的值都可以并且可以重复
-
字典的增删改查
- 查 — 获取字典的值
- 获取单个值:字典[key] ---- 获取字典指定key的值
- 字典.get(key) ---- 如果字典不存在,会报错,并且返回None
- 字典.get(key,0) —
- 遍历是取到字典的键
dog = {'name': '大黄', '爱好': '母狗', '性别': '公', '品种': '中华田园犬', '饲养人': {'name': '袁玮' , '电话': '555'}} print(dog['name']) for x in dog: print(x)
3.增和改
字典[key] = 值 — 当key存在的时候就是修改,不存在的时候就是增加
4.删除
del 字典[key] – 删除指定key对应的值
字典.pop(key) — 删除指定key对应的值
- 查 — 获取字典的值