Python基础之数据类型补充
7.基础数据类型的补充
7.1、基础类型补充
-
bool
布尔值-
人类是有多种方式表示对错,但是计算机只有两种。
-
True
-
False
-
print(1 > 2) print(3 == 3)
-
-
-
-
float
浮点型- 是Python基本数据类型中的一种,Python的浮点数类似数学中的小数和C语言中的double类型;
- 浮点数和整数在计算机内部存储的方式是不同的,整数运算永远是精确的,然而浮点数的运算则可能会有四舍五入的误差
- 整型和浮点型运算的结果也是浮点型;
-
我们到现在为止讲过的基础数据类型:int、str、list、tuple、dict、set、bool、float
7.2、str的补充
-
s1 = 'barry ALLen' print(s1.capitalize()) # 首字母大写,其余字母小写 s2 = 'barry allen;sb,alex' # 每个单词的首字母大写 print(s2.title()) s3 = 'Barry Allen' print(s3.swapcase()) # 大小写反转 s4 = 'barry' print(s4.center(20, '*')) # index find count
7.3、list列表的补充
-
lst = [1, 6, 5, 7, 9, 21, 11] print(lst.count(6)) # 统计次数 # 通过元素找索引 index # print(lst.index(9)) # 排序 # 从小到大排序 # lst.sort() # 从大到小排序 # lst.sort(reverse=True) # 倒序反转 # lst.reverse() # 列表与列表相加 # 列表与数字相乘 print(lst)
7.4、dict字典的补充
-
popitem
删除最后一组键值对dic = {'name': 'Allen', 'age': 25, 'sex': 'male'} ret = dic.popitem() print(ret) print(dic)
-
fromkeys()
创建字典dic = {'name': 'Allen'} # ret = dict.fromkeys('abc', 123) ret = dic.fromkeys('abc', 123) print(ret) # 坑!!! dic = dict.fromkeys('abc', [1, 2]) # print(dic) dic['a'].append(666) print(dic) print(id(dic['a'])) print(id(dic['b'])) print(id(dic['c']))
7.5、汇总
-
数据类型的分类
-
按照容器与非容器
- 容器型:
list tuple dict set
- 非容器:
int float str bool
- 容器型:
-
按照可变与不可变
- 可变(不可哈希):
list dict set
- 不可变(可哈希):
int float str bool tuple
- 可变(不可哈希):
-
有序与无序
-
无序:
set
-
有序:
int float str bool list tuple dict
-
-
-
数据类型的转换
int float str bool list tuple dict set。 int float转换 i1 = 3.84 print(int(i1)) # float ---> int print(float(3)) # int ---> float int ---> str pass int -----> bool i = 100 i = 0 print(bool(i)) print(int(True)) print(int(False)) str ---> list split join list ---> tuple
list —> set 列表的去重
-
所有的数据类型转化成bool值为False
0, '', [], (), {}, set(), None # 零,空字符,空列表,空元组,空字典,空集合,none
7.6、循环列表的坑
-
前提!!在循环当前列表的情况下, 如果改变此列表的大小,结果一定会有问题。
-
简单测试
-
完成下列需求:
l1 = [11, 22, 33, 44, 55] # 请把索引为奇数对应的元素删除
-
正常思路
for ind in range(len(l1)): if ind % 2 == 1: l1.pop(ind) print(l1)!
-
正确的解决方式
方法一 del l1[1::2] print(l1) 方法二 思维置换 l1 = [11, 22, 33, 44, 55] lst = [] for i in range(len(l1)): if i % 2 == 0: lst.append(l1[i]) print(lst) 方法三 倒序删除 l1 = [11, 22, 33, 44, 55] for i in range(len(l1)-1,-1,-1): # print(i) if i % 2 == 1: l1.pop(i) print(l1)
-
7.7、循环字典的坑
-
需求:遍历字典删除其中的元素
dic = {'k1':'小白','k2':'barry','k3': '白白', 'age': 18} # 正常思路 for key in dic: if 'k' in key: dic.pop(key) print(dic) # 遍历一个字典时,如果改变了这个当前字典的大小(增或者删值了),则会报错。 lst = list(dic.keys()) print(lst) for key in lst: if 'k' in key: dic.pop(key) print(dic)
常思路
for key in dic:
if 'k' in key:
dic.pop(key)
print(dic)
遍历一个字典时,如果改变了这个当前字典的大小(增或者删值了),则会报错。
lst = list(dic.keys())
print(lst)
for key in lst:
if 'k' in key:
dic.pop(key)
print(dic)