当前位置: 首页 > 后端技术 > Python

Python:生成列表的正确方法

时间:2023-03-25 21:40:21 Python

注意:生成列表时,最好使用[0for_inrange(n)]而不是生成的[0]*n,原因如下。假设我们要创建一个长度为n=2的列表a。一般有两种方法:a=[0]*n和a=[0for_inrange(n)],两者没有区别一维中的两种方法。但是如果我们要创建一个列表,列表中的每个元素都是一个长度为m=3的列表。两种方法的结果是不同的:n,m=2,3a=[[0]*n]*m#由第一种方法生成#a=[[0,0],[0,0],[0,0]]b=[[0for_inrange(n)]for_inrange(m)]#生成通过第二种方法#b=[[0,0],[0,0],[0,0]]a[0][0]=1#让a列表的第一个元素为1#a=[[1,0],[1,0],[1,0]]b[0][0]=1#b=[[1,0],[0,0],[0,0]]我们的预期结果像b,即第一个列表的第一个元素等于1,但是列表a是将每个列表的第一个元素设置为1。这样做的原因是第一代方法的生成方式类似=,即假设a和b都是列表,我们让a=b,如果其中一个改变,另一个也会随之改变,例如:a=[0,0,0]b=ab[0]=1#a=[1,0,0]#b=[1,0,0]如果你想避免这种情况,你应该写成b=list(a)。回到原题,如果用第一种方法a=[[0]n]m,那么a中的m个列表存储的地址都是一样的,那么如果你改变其中一个列表,其他列表将相应更改。出现以上情况。c=[[0]*nfor_inrange(m)]#没问题d=[[0for_inrange(n)]]*m#有问题,所以当你想在以后,用它[0for_inrange(n)]会更好。以上就是本次分享的全部内容。现在想学习编程的朋友欢迎关注Python技术大本营获取更多技能和教程。