【python】列表相关list[ ]与list[:]

1、循环删除列表中的元素
全部方法
list[:]表示提取出列表的元素

d = [1,2,3,4,5]
for i in d:
    d.remove(i)
print d
#结果:[2, 4]

原因:
remove d[0]之后,i 自动变成了 d[1], 但是 d已经变成了 d[2,3,4,5],所以i=d[1]就指向了3,跳过了2!

更正:

d = [1,2,3,4,5]
for i in d[:]:
   d.remove(i)
print d

2、复制列表的方法:

st = [1,2,3] 
lst1 = lst[:] # one way 
lst2 = list(lst) # another 

3、列表拼接

l = ['a']
a = l[0]
a += 'b'
print(l)   # ['a']
print(a)   # ab
l = [['a']]
a = l[0]
a += ['b']
print(l) # [['a', 'b']]
print(a) #['a', 'b']

4、修改列表
直接修改对象–失败:

li = ["spam", "eggs"]
for i in li:
    i = "foo"

结果失败:
li
["spam", "eggs"]

列表推到式–成功:

li = ["foo" for i in li]

结果:
li 
["foo", "foo"]

遍历索引–成功

for idx in range(len(li)):
    li[idx] = 'foo'

5、for循环中增加列表元素

for i in nums[]:
    nums.append(1)
    print(i)
    结果:一直输出,死循环,不会终止
for i in nums[:]:
    nums.append(1)
    print(i)
    结果:1 2 3
a=[1,2,3]
for j in a:#这里a和a[:]一样
    a=a+[1]
    print(a)
    
    结果:只循环了三遍
    [1, 2, 3, 1]
	[1, 2, 3, 1, 1]
	[1, 2, 3, 1, 1, 1]

猜你喜欢

转载自blog.csdn.net/qq_40707462/article/details/113948010