Python怎么用+和*进行列表拼接

发布时间:2023-04-18 14:55:22 作者:iii
来源:亿速云 阅读:140

这篇文章主要讲解了“Python怎么用+和*进行列表拼接”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python怎么用+和*进行列表拼接”吧!

对序列使用+和*

在编写python的过程中,我们默认python的序列是支持+和*的操作的。例如在对序列相加的过程中,+号两边的序列需要是相同类型的序列,python会为我们创建一个相同类型的序列作为拼接的结果。请看下面这个例子:

string_01 = 'abc'
string_02 = 'def'

print(string_01 * 5)
print(string_01 + string_02)

>>>abcabcabcabcabc
>>>abcdef

另外,我们还可以在列表中使用上述代码进行拼接与合并,如下所示:

list_01 = [i for i in range(3)]
list_02 = [i for i in range(4,7)]

print(list_01 * 3)
print(list_01 + list_02)

>>>[0, 1, 2, 0, 1, 2, 0, 1, 2]
>>>[0, 1, 2, 4, 5, 6]

在这个过程当中,python不会修改原有的序列而是会新开辟一个空间存储合并后或者拼接后的序列。

由列表组成的列表

在有些情况下,可能需要我们建立一个嵌套着几个列表的列表,例如需要我们建立一个用于存储员工信息的嵌套列表。请看下面的代码:

worker_information = [['Nan'] * 3 for i in range(3)]
print(worker_information)

>>> [['Nan', 'Nan', 'Nan'], ['Nan', 'Nan', 'Nan'], ['Nan', 'Nan', 'Nan']]

注意:上述代码中利用了生成器表达式来完成,还不是很了解的小伙伴可以点击下方文章了解一下。 【python进阶】你还在使用for循环新建数组?生成器表达式帮你一行解决

当我们想要修改其中的一项时,只需要进行常规的赋值就可以了,如下所示:

worker_information[0][0] = '王刚'
worker_information[0][1] = '20岁'
print(worker_information)

>>>[['王刚', '20岁', 'Nan'], ['Nan', 'Nan', 'Nan'], ['Nan', 'Nan', 'Nan']]

嵌套列表创建的陷阱

我们通过上述代码中的+和的应用使得我们快速创建了嵌套列表。但是,要注意当使用诸如an的表达式时,a不能是同一个引用。下面我们来看一个具体的例子来更好的说明这种情况,请看下面这段代码:

worker_information_bug = [['Nan'] * 3] * 3
print(worker_information_bug)

worker_information_bug[0][0] = '王刚'
print(worker_information_bug)

>>>[['Nan', 'Nan', 'Nan'], ['Nan', 'Nan', 'Nan'], ['Nan', 'Nan', 'Nan']]
>>>[['王刚', 'Nan', 'Nan'], ['王刚', 'Nan', 'Nan'], ['王刚', 'Nan', 'Nan']]

程序出现了意想不到的结果,当我们改变嵌套列表中的一个元素时,所有列表的元素都发生了改变。下面这段代码也是典型的错误,如下:

row = ['Nan'] * 3
worker_information_bug_02 = []
for i in range(3):
    worker_information_bug_02.append(row)

print(worker_information_bug_02)

worker_information_bug_02[0][0] = '王刚'
print(worker_information_bug_02)

>>>[['Nan', 'Nan', 'Nan'], ['Nan', 'Nan', 'Nan'], ['Nan', 'Nan', 'Nan']]
>>>[['王刚', 'Nan', 'Nan'], ['王刚', 'Nan', 'Nan'], ['王刚', 'Nan', 'Nan']]

上述两段代码的错误都是由于重复了同一个引用所导致的,在[['Nan'] * 3] 中我们建立了一个列表,但当这个结构被嵌套成[['Nan'] * 3] * 3时,其实我们只是在一个列表中放入了三个同一个列表的引用,而不是创建了三个列表。正确的做法应该如下:

worker_information_bug_02 = []
for i in range(3):
	# 每次循环都建立新的列表
    row = ['Nan'] * 3
    worker_information_bug_02.append(row)

print(worker_information_bug_02)

worker_information_bug_02[0][0] = '王刚'
print(worker_information_bug_02)

>>>[['Nan', 'Nan', 'Nan'], ['Nan', 'Nan', 'Nan'], ['Nan', 'Nan', 'Nan']]
>>>[['王刚', 'Nan', 'Nan'], ['Nan', 'Nan', 'Nan'], ['Nan', 'Nan', 'Nan']]

在上述代码中,我们在每次循环都建立了新的列表,这能够保证我们的修改正常进行。

感谢各位的阅读,以上就是“Python怎么用+和*进行列表拼接”的内容了,经过本文的学习后,相信大家对Python怎么用+和*进行列表拼接这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. python在CMD界面实现读取excel所有数据的方法
  2. python 字典嵌套解析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python

上一篇:怎么使用Spring-Retry解决Spring Boot应用程序中的重试问题

下一篇:Python字典列表中怎么删除重复项

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》