python全栈闯关--7-基础数据类型汇总、集合、深浅拷贝
发布时间:2020-12-20 10:35:46 所属栏目:Python 来源:网络整理
导读:1、str s = ‘ ‘ print (s.isspace()) # 如果字符串全是空格返回True ? 2、在循环一个列表时,最好不要删除列表中的元素 删除列表元素,得到的结果,往往不是预期的 例子1: lis = [11,22,33,44,55 ] # 循环开始后,按照索引递增,删除了前面的值,不会处理
1、strs = ‘ ‘ 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,55] # 值删除后: # [22,55] # 目前删除元素值为:33 # 值删除前: # [22,55] # 目前删除元素值为:55 # 值删除前: # [22,44] ? 例子2: # 按照列表的长度删除,由于删除值后,列表的长度变化,删除到索引不存在时,报错 lis = [11,55] for i in range(len(lis)): print(i) # i = 0 i = 1 i = 2 i = 3 del lis[i] print(lis) # [22,55] [22,55] [22,44] 报错索引值超出范围 循环开始后,由于索引值一直增加,同时列表的长度变化。导致读取到的值,不是预期想要的,甚至报错 ? 列表长度动态变化下,如何删除其中的值呢? # 每隔一个元素,删除一个值 # 方法一:切片 lis = [11,55] s = lis[::2] print(s) # 方法二:循环 lis = [11,55] rs = [] index = 0 for i in lis: if index % 2 == 1: rs.append(i) index += 1 print(rs) lis = [11,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‘] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |