加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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、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,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‘]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读