生成一维列表:

1.要生成list [1, 2, 3, 4, 5, 6, 7,8, 9, 10]可以用range(1, 11)
如图所示:
对列表生成的一些操作(生成一维列表,二维列表)
2.要生成[1x1, 2x2, 3x3, …,10x10]也可以使用range(1,11)
如图所示:
对列表生成的一些操作(生成一维列表,二维列表)
解释:

写列表生成式时,把要生成的元素x(或x* x)放到前面,后面跟for循环,就可以把list创建出来。
注:for前后的元素应该是一样的。
3. 还可以for循环后面加上if判断,这样就可以进行筛选
如:筛选出仅偶数的平方
对列表生成的一些操作(生成一维列表,二维列表)
4.把列表中所有的字符串变成大写:
对列表生成的一些操作(生成一维列表,二维列表)
5.如果列表中既包含字符串,又包含整数,由于非字符串类型没有uppper()方法,所以列表生成式会报错,我们可以使用内建的isinstance函数可以判断一个变量是不是字符串,在for循环后面加上if判断,这样就可以进行转换:
对列表生成的一些操作(生成一维列表,二维列表)
解释:

isinstance()是Python中的一个内建函数。是用来判断一个对象的变量类型isinstance(object, classinfo)如果参数objectclassinfo的实例,或者objectclassinfo类的子类的一个实例, 返回True。如果object不是一个给定类型的的对象, 则返回结果总是False。

6.将其中的非字符串也输出,那么列表生成式为:
对列表生成的一些操作(生成一维列表,二维列表)

生成二维列表

1.使用*创建二维列表 :[[]]*n
对列表生成的一些操作(生成一维列表,二维列表)
结果发现修改一个元素,剩余的元素也会相应修改:
对列表生成的一些操作(生成一维列表,二维列表)
原因:

这种创建方式属于浅拷贝,即他们引用的是同一个地址,所以二维列表中的每个一维列表都相同。

附:浅拷贝和深拷贝的区别

浅拷贝是指源对象与拷贝对象共用一份实体(地址),仅仅是引用的变量不同(名称不同),对其中任何一个对象的改动都会影响另外一个对象。

深拷贝是指源对象与拷贝对象互相独立,其中任何一个对象的改动都不会对另外一个对象造成影响。

2.直接创建:
对列表生成的一些操作(生成一维列表,二维列表)
3.使用for循环创建:

list=[[xfor i in range (5)]for j in range(7)]

x表示列表中的元素,x可以是整型,可以是字符型,也可以为空列表[]
对列表生成的一些操作(生成一维列表,二维列表)注: 使用for循环创建的二维列表修给单个元素时不会使整个列表都修改

相关文章:

  • 2021-12-08
猜你喜欢
  • 2022-12-23
  • 2022-02-08
  • 2022-12-23
  • 2022-12-23
  • 2021-07-10
  • 2021-06-15
  • 2021-11-28
相关资源
相似解决方案