Python 修改列表元素、复制列表、合并列表的几种方式

修改列表元素的两种方式

1)索引 —-> 修改单个元素

语法格式:list_name[index] = value

参数说明:

index:要修改元素的索引位置。可以是正索引,也可以是负索引。

代码演示:

lst = [10,20,30,40,50]

# 将索引为2的元素修改为999
lst[2] = 999

print(lst)  # [10, 20, 999, 40, 50]

# 将索引为-1的元素修改为 hello
lst[-1] = 'hello'

print(lst)
图片[1]-Python 修改列表元素、复制列表、合并列表的几种方式-尤尤'blog

2)切片操作 —-> 修改多个元素

语法结构:list_name[start,stop,step] = iterable

a、如果不指定步长,切片部分元素个数和新赋值的元素个数可以不相同。

lst = [0,10,20,30,40,50,60,70,80,90]

# 不指定步长,新赋值的元素个数可以和切片部分元素个数不相同
lst[2:5] = [111,222,333,444]

print(lst)
图片[2]-Python 修改列表元素、复制列表、合并列表的几种方式-尤尤'blog

b、如果指定步长,切片部分元素个数必须和新赋值的元素个数相同,否则抛出 ValueError 异常。

lst = [0,10,20,30,40,50,60,70,80,90]

# start = 1,stop = 8,step = 2
lst[1:8:2] = [111,222,333]

print(lst)
图片[3]-Python 修改列表元素、复制列表、合并列表的几种方式-尤尤'blog

让切片部分元素个数和新赋值的元素个数相同:

lst = [0,10,20,30,40,50,60,70,80,90]

# start = 1,stop = 8,step = 2
lst[1:8:2] = [111,222,333,444]

print(lst)
图片[4]-Python 修改列表元素、复制列表、合并列表的几种方式-尤尤'blog

c、所赋的值必须是可迭代对象,否则会抛出 TypeError 异常。

lst = [0,10,20,30,40,50,60,70,80,90]

# 123 是整型
lst[2:5] = 123

print(lst)
图片[5]-Python 修改列表元素、复制列表、合并列表的几种方式-尤尤'blog

上面的123 是整型,如果把它修改为字符串类型,Python会把字符串中的每一个字符当做是一个元素,添加到列表中。

lst = [0,10,20,30,40,50,60,70,80,90]

# 新赋值的对象必须是可迭代对象
lst[2:5] = '123'

print(lst)
图片[6]-Python 修改列表元素、复制列表、合并列表的几种方式-尤尤'blog

复制列表的四种方法

1)赋值操作 —–> list2 = list1

这里的 list2 只是对 list1 的引用,在 list1 中做的更改,list2 也会跟着变化。他们两个指向的内存地址相同。

lst1 = [10,20,30,40,50]

lst2 = lst1

print('lst1 =',lst1,id(lst1))    # lst1 = [10, 20, 30, 40, 50] 3072985923008
print('lst2 =',lst2,id(lst2))    # lst2 = [10, 20, 30, 40, 50] 3072985923008

lst1.pop()

print('lst1.pop()后的lst1 =',lst1,id(lst1))    # lst1.pop()后的lst1 = [10, 20, 30, 40] 3072985923008
print('lst1.pop()后的lst2 =',lst2,id(lst2))    # lst1.pop()后的lst2 = [10, 20, 30, 40] 3072985923008
图片[7]-Python 修改列表元素、复制列表、合并列表的几种方式-尤尤'blog

2)copy()方法 —–> new_list = original_list.copy()

产生一个新的列表对象。new_list 和 original_list 指向的不是同一块内存空间,所以在 original_list 中做的修改不会影响 new_list 列表,反之亦然。

original_list = [10,20,30,40,50]

new_list = original_list.copy()

print('original_list =',original_list,id(original_list))    # original_list = [10, 20, 30, 40, 50] 2738426412480
print('new_list =',new_list,id(new_list))    # new_list = [10, 20, 30, 40, 50] 2738430080704

# 向original_list列表添加元素
original_list.append('hello')

print('original_list =',original_list,id(original_list))    # original_list = [10, 20, 30, 40, 50, 'hello'] 2738426412480
print('new_list =',new_list,id(new_list))  # new_list = [10, 20, 30, 40, 50] 2738430080704
图片[8]-Python 修改列表元素、复制列表、合并列表的几种方式-尤尤'blog

3)内置函数list() —–> new_list = list(list_name)

产生一个新的列表对象。两个列表对象指向不同的内存空间,所以在其中一个列表中所做的修改是不会影响另一个列表的。

lst = [10,20,30,40,50]

print(lst,id(lst))      # [10, 20, 30, 40, 50] 1908678262208

new_lst = list(lst)

print(new_lst,id(new_lst))    # [10, 20, 30, 40, 50] 1908678248192
图片[9]-Python 修改列表元素、复制列表、合并列表的几种方式-尤尤'blog

4)切片操作 —-> new_list = original_list[:]

两个列表对象指向不同的内存空间,所以在其中一个列表中所做的修改是不会影响另一个列表的。

original_list = [10,20,30,40,50]

new_list = original_list[:]

print('original_list =',original_list,id(original_list))    # original_list = [10, 20, 30, 40, 50] 2738426412480
print('new_list =',new_list,id(new_list))    # new_list = [10, 20, 30, 40, 50] 2738430080704

original_list.append('hello')

print('original_list =',original_list,id(original_list))    # original_list = [10, 20, 30, 40, 50, 'hello'] 2738426412480
print('new_list =',new_list,id(new_list))  # new_list = [10, 20, 30, 40, 50] 2738430080704

合并列表的三种方法

1)+ 会产生新的列表对象

list1 = [20,30,40]
list2 = ['hello','python']
new_list = list1 + list2
print(new_list)  # [20, 30, 40, 'hello', 'python']
图片[10]-Python 修改列表元素、复制列表、合并列表的几种方式-尤尤'blog

2)append() 把list2中的元素一个一个追加到list1中

list1 = [20,30,40]
list2 = [333,444,555]

print(id(list1),list1)  # 2251902877120 [20, 30, 40]

# 遍历list2,将list2中的元素使用append一个一个的添加到list1列表的末尾
for i in list2:
    list1.append(i)
    
print(id(list1),list1)  # 2251902877120 [20, 30, 40, 333, 444, 555]
图片[11]-Python 修改列表元素、复制列表、合并列表的几种方式-尤尤'blog

3)extend() 把list2添加到list1末尾

list1 = [20,30,40]
list2 = ['hello','python']

list1.extend(list2)

print(list1)    # [20, 30, 40, 'hello', 'python']
图片[12]-Python 修改列表元素、复制列表、合并列表的几种方式-尤尤'blog

列表元素的遍历

列表是可迭代序列,使用 for 循环来遍历。

语法格式:

for 迭代变量 in 列表名:
    操作

代码演示:

lst = ['hello','python',10,'hello',22]
for i in lst:
    print(i)

获取列表的长度

使用 len() 来获取列表的长度。

lst = [10,20,30,40,50,60,70,80]
print(len(lst)) # 8
© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容