数据推导式
1). 序列变换成列表(统一)
str1 = 'abc'
list1 = [x for x in str1]
print(list1) # ['a', 'b', 'c']
nums = [10, 245, 89, 56]
list2 = [x*100 for x in nums]
print(list2) # [1000, 24500, 8900, 5600]
list3 = [x % 10 for x in nums]
print(list3)
2). 筛选(提取出有效或者删除无效)
scores = [89, 8, 100, 98, 67, 34, 59, 45, 23, 78, 92]
new_scores = [x for x in scores if x >= 60]
print(new_scores)
3). 不统一的变换
list4 = [19, 'abc', 98, 'mnb', 13, 53]
new_list4 = [x*10 if type(x) == int else x for x in list4] #三元运算(三目运算)
print(new_list4)
列表的加法和乘法
加法:列表一 + 列表二 ---- > 合并两个列表产生一个新的列表
print([1, 2, 3] + ['后羿', ['鲁班七号']) # [1, 2, 3, '后裔', '鲁班7号']
乘法:列表 * N ----> 列表中的元素重复N次产生一个新的列表
a = [1, 2, 3]
print(a * 3) # [1, 2, 3, 1, 2, 3, 1, 2, 3]
比较运算
1). 比较等于:==, !=
2). is的用法:is的实质是判断两个数据的地址是否一样
获取变量中保存的数据在内容空间中的地址:id(变量)
结论1:用数据给变量赋值的时候,如果数据是不可变,那么会复用前面存储的值。
如果数据可变,不管之前有没有存储过,都会重新开辟新的内容空间。
数字不可变 列表可变 元祖不可变 字典可变
结论2:如果用一个变量给另外一个变量赋值,其实是让新的变量保存原变量中的数据的地址。(不
会开辟新的空间保存
a = 100
b = a
print(id(a), id(b)) # 4564547360 4564547360 地址一样
结论3:python中所有的变量都是指针变量。(变量保存数据的时候其实保存的是数据在内存中存储的地址)
列表的函数和相关方法
- 函数
max和min
max(序列) ---- 返回序列中元素的最大值
min(序列) ---- 返回序列中元素的最小值
sum
sum(序列) ----求序列中所有元素的和,但是序列中的元素只能是数字
sorted
sorted(序列) ----将序列中的元素从小到大的排序(升序),以列表的形式返回
sorted(序列, reverse = True) ----将序列中的元素从大到小的排序(降序),以列表的形式返回
list
list(序列) ---- 将其他序列转换成列表(任何序列都可以转换成列表)
- 方法
列表(list).clear() ---- 删除列表中所有的元素
列表(list).copy() ---- 返回一个和原列表(长的一样)一样的新列表,
copy的列表和原列表内存地址不一样
列表(list).count(元素) ---- 返回元素在列表中出现的次数
列表(list).extend(序列) ---- 将extend后面序列中的元素全部添加到列表中**(批量添加元素)**
列表(list).index(元素) ---- 返回元素在列表中的下标(开始的下标是从0开始的下标值)
注意:如果元素存在多个,只返回最前面的元素的下标.
如果元素不存在将报错
列表(list).reverse() ---- 列表逆序
列表(list).sort() ---- 升序
列表(list).sort(reverse = True) ---- 将序
字典
字典是容器型数据类型,将{}作为容器的标志,里面多个元素(元素都是键值对)用逗号隔开
语法:{键1:值1, 键2:值2, 键3:值3,…}
注意:字典保存数据,其实是保存的值,键的作用是对值进行分区和说明
字典可变(支持增删改查)
字典无序(不支持下标操作)
字典的元素:必须以键值对形式出现
键:必须是不可变的数据(一般使用字符串)且唯一
值:任何类型的数据都可以,可以重复
字典的增删改查
查
- 获取单个值
a. 字典[key] ---- 获取字典中指定key对应的值,如果key不存在会报错
b. 字典.get(key) ---- 获取字典中指定key对应的值,如果key不存在不报错并且返回None
c. 字典.get(key, 默认值)
- 遍历
for - in 遍历字典取到的是字典的键
增,改
字典[key] = 值 ---- 当key存在的时候就是修改,当key不存在的时候就是增加
删
-
del 字典[key] ---- 删除字典中指定key对应的键值对,当key不存在时会报错
-
字典.pop(key) ---- 取出字典中指定key对应的值并返回key对应的值(value)
in和not in操作
作用:字典的in和not in判断的是某个key是否存在
dict1 = {'a': 10, 'b': 20, 'c': 30}
print(10 in dict1) # False
print('a' in dict1) # True
max, min, sum, sorted()了解 ---- 这些操作全部针对字典的key
dict
dict(序列) ---- 将序列转换成字典
要求:序列中的每个元素都是序列
小序列有且只有一个元素
小序列的第一个元素不可变