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'}

 

posted @ 2019-09-24 16:57  熊熊闯深林  阅读(123)  评论(0编辑  收藏  举报