python入门学习笔记(列表)

1.列表可以加法,乘法

s=[1,2,3]
t=[4,5,6]
s+t
[1,2,3,4,5,6]
s*3
[1,2,3,1,2,3,1,2,3]
  

2.嵌套列表(二维列表)矩阵

 matrix=[[1,2,3],[4,5,6],[7,8,9]]
“也可以这样表达”
matrix=[[1,2,3]
        [3,4,5]
        [7,8,9]]
matrix
>>[[1,2,3],[4,5,6],[7,8,9]]

3.接2,如何以矩阵形式表达:

>>for i in matrix:

     for each in i 

             print(each,end=' ')

     print()

     1 2 3

     4 5 6

     7 8 9

>>matrix[0]

[1,2,3]  

>>matrix[0][0]   // "第0行第0列"

4.新运算符 is  (python认为字符串是不可变的,但是列表是可变的,因为可以添加or删除)

“如”
>>a=[0]*3
>>a
[0,0,0]
>>for i in range(3):
      a(i)=[0]*3
>>a
[[0,0,0],[0,0,0],[0,0,0]]

>>b=[[0]*3]*3
>>b
[[0,0,0],[0,0,0],[0,0,0]]

>>a is b
>>False

5.拷贝 

"浅拷贝"
>>x=[1,2,3]
y=x.copy()
x=[1]=1 
>>[1,1,3]
>>y
>>[1,2,3]
"y是不受到改变的,因为copy的对象是整个列表不是变量的应用" 

"切片的方式经行改变--浅拷贝"
>>x=[1,2,3]
y=x[:]
x[1]=1
x
>>[1,1,3]
y
>>[1,2,3]
"用切片的方式,依旧不会改变y的情况,任属于浅拷贝"  

 5.1  copy模块-深拷贝

>>import copy  "这个是copy的模块,和之前copy列表不一样"
x=[[1,2,3],[4,5,6],[7,8,9]]
y=copy.copy(x)  "也是浅拷贝"
x[1][1]=0
>>x
[[1,2,3],[4,0,6],[7,8,9]]
>>y
[[1,2,3],[4,0,6],[7,8,9]]
 
"深拷贝"
x=[[1,2,3],[4,5,6],[7,8,9]]
y=copy.deecopy(x)  
x[1][1]=0
>>x
[[1,2,3],[4,0,6],[7,8,9]]
>>y
[[1,2,3],[4,5,6],[7,8,9]]

6.语法,列表推导式

>> "列表推导式"--前提是列表:[expression for target in iterable]
>>x=[1,2,3]
>>for i in range(len(x)):
   x[i]=x[i]*2
>>x
[2,4,6]

"用列表推导式的话"
>>x=[1,2,3]
>>x=[i*2 for i in x]
>>x 
[2,4,6]

>>a=[i for i in ramge(10)]
>>a
[0,1,2,3,4,5,6,7,8,9]

>>b=[i for i in ramge(10)]
>>b
>>[1,2,3,4,5,6,7,8,9,10]

7.

"列表表达式的嵌套表达"--[expression for target1 in iterable1
                                  for target2 in iterable2

                                                       ...]

"将二维列表降为成一维": 
x=[[1,2,3],[4,5,6]]
f=[col for row in x for col in row]
f
[1,2,3,4,5,6]
 
"非列表表达":
f=[]
for row in x:
    for col in row:
         flatten.append(col)
f
[1,2,3,4,5,6]

8.kiss原则 keep it simple or stupid 

简介明了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值