美文网首页
python列表学习笔记

python列表学习笔记

作者: 屎倒淋头还嚼便 | 来源:发表于2021-12-08 16:45 被阅读0次
#列表的增删改查
一、增加
s = [1,2,3,4,5]
s.append(11)
s.extend( [8 , 9] )
s.insert(1,123) #在索引1处插入123

#列表、和普通字符串都是序列。
s = [1,2,3,4,5]
s[len(s):] = [6]  #切片,大概就是从一个列表中截取一部分数据
结果:[1, 2, 3, 4, 5, 6]
注意:冒号表示范围,返回的还是一个列表,所以用列表赋值
冒号后面是空白,表示到列表的最后

s = [1,2,3,4,5]
s[len(s)-1] = 7
结果:[1, 2, 3, 4, 7]

二、删除
s.remove(123) #删除具体值
s.pop(0) #按索引删除
s.clear() #清空

三、改
s = [1,2,3,4,5]
s
[1, 2, 3, 4, 5]
s[1:3] = [22,33,44,55] #切片,索引1、2两处改成若干个值,也可以只改成一个值
s
[1, 22, 33, 44, 55, 4, 5]

四、排序
s.sort() # 默认正序
s.reverse() #倒转列表
s.sort(reverse=True) #先排序后倒转

s.count(22) #计算22有多少个
s.index(22) #返回22所处的索引位置

s2 = s.copy()
s3 = s[:] #这两种都是浅拷贝

五、matrix矩阵,二维数组
matrix = [[1,2],[4,5]]
#遍历二维数组
for i in matrix:
  for each in i:
    print(each)

for i in matrix:
    for each in i:
        print(each,end = ' ')
    print()

#获取元素
matrix[0]
matrix[0][0] #获取第一行第一列的元素

#创建一个二维列表
a = [0]*3
for i in range(3):
    a[i] = [0]*3

# is 关键字是比对两个对象是不是指向同一个内存空间的
x = "fish"
y = "fish"
x is y #True  #因为字符串内存中只有一份

b = [[0]*3] * 3 #这样创建二维数组,和前面的a不同
a[0] is a[1] # False
b[0] is b[1] # True  #因为b这种创建方式,内存中只有一份 [0,0,0]其它的只是引用。

#二维数组copy
x = [[1,2,3],[4,5,6]]
y = x.copy()
x is y #False
x[0][0] = 9
#打印x、y后发现,x、y都改变了。这就是浅拷贝(好像是只拷贝了引用)

import copy #引入拷贝模块(类似java的类)
y = copy.copy(x) #这还是浅拷贝
y = copy.deepcopy(x)  # 这是深拷贝  x的如上改变,不会影响y了

#列表推导式
oho = [1,2,3,4,5] 
#已知列表中都是数字,让每一个数字都乘以2
for i in range(len(oho)): 
    oho[i] = oho[i] * 2
还有一种就是列表推导式
oho = [i*2  for i in oho]  # [循环体  for遍历]
x = [i+1 for i in range(10)] #得到一个列表,从1到10

x = [[1,2],[4,5]]
y = [row[1] for row in x] #获取矩阵中的第二列,结果为列表 [2,5]
y = [x[i][i] for i in range(len(x))] # 获取对角线 结果 : [1,5]

#这两种方式的结果不完全一致。遍历时修改原内存的值,列表推导式是创建一个新的列表。

#用列表推导式创建一个二维列表
s = [[0]*3 for i in range(2)] 

#列表推导式,可以加 if 条件语句
even = [i for i in range(9) if i%2 == 0]
even
[0, 2, 4, 6, 8]

#用列表推导式,筛选出来 f 开头的单词
words = ["a","f1","f2","b"]
words
['a', 'f1', 'f2', 'b']
s = [i for i in words if i[0] == 'f'] #字符串也是列表?或者是序列
s
['f1', 'f2']

#将二维列表按正序变成一维列表
matrix
[[1, 2], [4, 5]]
s = [col for row in matrix for col in row] #可以看出,除了循环体表达式倒装前置了,两个for循环还是正序
s
[1, 2, 4, 5]

相当于:
s2= []
for row in matrix:
    for col in row:
        s2.append(col)
        
s2
[1, 2, 4, 5]

#列表推导式,每一个for循环都给一个 if 条件语句
_ = [[x,y] for x in range(9) if x%2 == 0 for y in range(9) if y%3 == 0]
_
[[0, 0], [0, 3], [0, 6], [2, 0], [2, 3], [2, 6], [4, 0], [4, 3], [4, 6], [6, 0], [6, 3], [6, 6], [8, 0], [8, 3], [8, 6]]

#python写代码kiss原则  keep it simple and stupid 保持简洁易懂











相关文章

  • Effective Python 学习笔记 2

    Effective Python 学习笔记 2 用列表推导来取代map和filter 列表推导(list comm...

  • Python学习-列表(list)的常用方法

    查看所有Python相关学习笔记 列表的常用方法 列表常用方法 重点掌握append 增加元素----从尾部增加-...

  • python3-元组、列表和字典

    来自python3学习笔记,有不正确的地方大家多多指教 一、列表 (一)、列表的简述 1.列表使用方括号[],列表...

  • python-列表、元组和字符

    小甲鱼的《零基础入门学习python》学习笔记 1.列表 1.1列表的基本操作 1.2从列表中获取元素 和C中的数...

  • Python笔记002-列表推导式

    Python笔记002-列表推导式 以下是我学习《流畅的Python》后的个人笔记,现在拿出来和大家共享,希望能帮...

  • python学习笔记-列表

    1.count()方法 作用:用于计算每个值出现的次数 2.增加值 (1)insert()方法 作用:插入值 把一...

  • python学习笔记----列表

    一、添加:(position 索引.. date数据)append(data)把添加的值直接当做一个元素插入列表当...

  • Python学习笔记------列表

    我们来复习一下列表的使用,及方法。增append(data)把添加的值当做一个元素,插入到列表当中,如图所示!

  • python学习笔记----列表

    列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。列表的数据项不需要具有相同的类型创建一...

  • python学习笔记----列表

    一、添加:(position 索引.. date数据)append(data)把添加的值直接当做一个元素插入列表当...

网友评论

      本文标题:python列表学习笔记

      本文链接:https://www.haomeiwen.com/subject/woetfrtx.html