python全栈闯关--7-1、基础数据类型汇总
1、str
s = ' ' print(s.isspace()) # 如果字符串全是空格返回True
2、在循环一个列表时,最好不要删除列表中的元素
删除列表元素,得到的结果,往往不是预期的
例子1:
lis = [11, 22, 33, 44, 55] # 循环开始后,按照索引递增,删除了前面的值,不会处理列表索引的位置 # 虽然没有报错,但是不是想要的结果 for i in lis: print("目前删除元素值为:%d " % i) print("值删除前:") print(lis) lis.remove(i) print("值删除后:") print(lis) # 目前删除元素值为:11 # 值删除前: # [11, 22, 33, 44, 55] # 值删除后: # [22, 33, 44, 55] # 目前删除元素值为:33 # 值删除前: # [22, 33, 44, 55] # 值删除后: # [22, 44, 55] # 目前删除元素值为:55 # 值删除前: # [22, 44, 55] # 值删除后: # [22, 44]
例子2:
# 按照列表的长度删除,由于删除值后,列表的长度变化,删除到索引不存在时,报错 lis = [11, 22, 33, 44, 55] for i in range(len(lis)): print(i) # i = 0 i = 1 i = 2 i = 3 del lis[i] print(lis) # [22, 33, 44, 55] [22, 44, 55] [22, 44] 报错索引值超出范围
循环开始后,由于索引值一直增加,同时列表的长度变化。导致读取到的值,不是预期想要的,甚至报错
列表长度动态变化下,如何删除其中的值呢?
# 每隔一个元素,删除一个值 # 方法一:切片 lis = [11, 22, 33, 44, 55] s = lis[::2] print(s) # 方法二:循环 lis = [11, 33, 33, 22, 33, 22, 33, 44, 55] rs = [] index = 0 for i in lis: if index % 2 == 1: rs.append(i) index += 1 print(rs) lis = [11, 22, 33, 44, 55] for i in range(len(lis) - 1, -1, -1): if i % 2 == 1: print(i) del lis[i] print(lis)
3、指向通一内存的列表,其中一个值变了,所有的值都会改变
l1 = [] l2 = l1 l3 = l1 l3.append('a') print(l1,l2,l3) # ['a'] ['a'] ['a']
4、动态删除字典中,键值未key的值
# 方法一:新建字典,添加到新字典 dic = {'k1': 'v1', 'k2': 'v2', 'a3': 'v3'} dic1 = {} for i in dic: # 默认获取的是键值 if 'k' not in i: dic1.setdefault(i, dic[i]) # dic1[i] = dic[i] dic = dic1 print(dic)
# 方法二:先获取需要删除的键值,在按照键值删除 dic = {'k1': 'v1', 'k2': 'v2', 'a3': 'v3'} k_list = [] for i in dic: if 'k' in i: k_list.append(i) for k in k_list: del dic[k] print(dic)
5、bool值为false
转换位bool值后为false:0 '' [] () {} set()
print(bool(0)) print(bool('')) print(bool([])) print(bool(())) print(bool({})) print(bool(set()))
6、元祖只有一个元素
元祖 如果元祖里面只有一个元素且不加,那此元素是什么类型,就是什么类型。
tu1 = (1) tu2 = (1,) print(tu1, type(tu1)) # int print(tu2, type(tu2)) # tuple tu1 = ([1, 2, 3]) tu2 = ([1, 2, 3],) print(tu1, type(tu1)) # list print(tu2, type(tu2)) # tuple
7、字典的fromkeys方法
dic = dict.fromkeys([1, 2, 3, ], 'beer') # {1: 'beer', 2: 'beer', 3: 'beer'} dic[1] = 1 print(dic) # {1: 1, 2: 'beer', 3: 'beer'}