Python 学习笔记3 列表

举报
拿我格子衫来 发表于 2022/03/17 23:45:28 2022/03/17
【摘要】 python中的数组 与 js中的数组格式无异 如下面数组 spam = [1,2,3,4,5,6] 使用下标可以取得数组的中的值,下标从0开始,spam[0]  就是1 也可以使用多重数组 spam = [['cat','bat], [1,2,3]]spam[0][1] // bat 下标不能超出数组的中,不...

python中的数组 与 js中的数组格式无异

如下面数组

spam = [1,2,3,4,5,6]
 

使用下标可以取得数组的中的值,下标从0开始,spam[0]  就是1

也可以使用多重数组


  
  1. spam = [['cat','bat], [1,2,3]]
  2. spam[0][1] // bat

下标不能超出数组的中,不能用浮点数,必须是正整数.

切片:切片可以从列表中获取多个值,返回一个新的列表.


  
  1. spam = [1,2,3,4,5,6,7]
  2. spam[0:4] // [1,2,3,4]

在切片中第一个整数为切片的开始处下标,第二个整数是切片的结束处下标,切片向上增长,直到第二个下标,但不包括它,

省略第一个参数如spam[:2] 相当于默认开始从0开始, 

省略第二个参数,则默认到列表结尾,spam[1:]

如果两个参数都省略,则默认从0到列表结尾,完整拷贝一份spam[:]

数组长度可以使用len()函数来获取

如:

spam = [1,2,3,4]

len(spam)

使用下标改变列表中的值,spam[1] = 'asd'

spam[-1] = 1232 将列表  spam的最后一个元素改成1232

列表的链接时候用加号  +

如 [1,2,3,4,5] + [6,7,8,9]  // [1,2,3,4,5,6,7,8,9]

*号可以实现列表的复制 如

[1,2,3] * 3  //  [1,2,3,1,2,3,1,2,3]

使用del语句从列表中删除值

del spam[2]  // 删除下标为2的值

列表的循环


  
  1. for i in [1,2,3,4,5]:
  2. print(i)

在python中经常使用range(leng(someList)) 来迭代列表的每一个下标 如下


  
  1. supplies = ['pens', 'staplers', 'cat', 'tom', 'Fizz']
  2. for i in range(len(supplies)):
  3. print('Index'+str(i)+'in supplies is: '+ supplies[i])

利用in 和not in 操作符可以确定一个值是否在列表中 如下


  
  1. 'Fizz' in ['Hello', 'World', 'Fizz']
  2. spam = [1,1,2,3,3,34]
  3. 5 in spam
  4. 5 not in spam

多重赋值很像es6的解构,在一行代码里将列表中的多个变量赋值

如下


  
  1. cat = ['fat', 'black', 'loud']
  2. size, color, disposition = cat

在python中也可以使用 += 1这种增强赋值

spam + =1  等于 spam = spam +1 榆与此类似的还有

spam += 1; spam -= 1; spam *= 1; spam /= 1;  spam %= 1;

数组中查找值 使用index() 方法

[1,2,3,4].index(1)  // 返回第一个下标 

使用append() 和insert() 方法在列表中添加值

append是向列表末尾追加元素,insert是向数组中插入一个 ,insert()方法第一个参数表示新值的下标,第二个表示要插入的值

[1,2,3].append(4)  // [1,2,3,4] 

[1,2,3,4].insert(1,1) // [1,1,2,3,4]

使用remove() 方法从列表中删除值 只会删除第一个值

[1,2,3,4,5].remove(4)  // [1,2,3,5]

使用sort方法可以将列表的值排序

[2,3,4,1,4,7].sort() // [1,2,3,4,4,7]

[2,3,4,1,4,7].sort(reverse =True) // [7,4,4,3,2,1] 传入rverse = True 逆序排序

 

类似列表的类型:字符串和元组

字符串也可以想数组一样使用下标进行取值 切片 如 'Fizz'[0]  // 'F'   'Fizz'[0:2] // 'Fi'  'Fizz' in 'F'

字符串是不可变的,它的值不能被改变,删除,添加 但列表可以添加,删除,改变,

 

元组数组是不可变的数据类型,使用()来表示 如 eggs = ('Hello', 0, 23,)

每个元素都不可变的, 不能eggs[1] = 2 这样写会报错 不能添加,和删除

我们可以使用list()和tuple() 函数来转换数据类型

tuple([1,2,3,4,])   //  (1,2,3,4)

list((1,2,3,4))  // [1,2,3,4]

list('Hello')  // ['H', 'e', 'l', 'l' , 'o'], 

python中的列表也会是一个内存地址的引用,如果赋值给另一个变量,则两个变量指向同一个内存地址, 改变一个同时改变另一个,属于浅复制

使用copy模块的copy()和deepCopy()函数可以对列表进行深复制,不再指向一个内存地址


  
  1. import copy
  2. spam = [1,2,3,4]
  3. cheese = copy.copy(spam)
  4. cheese[1] = 43

 

 

 

 

 

 

 

文章来源: fizzz.blog.csdn.net,作者:拿我格子衫来,版权归原作者所有,如需转载,请联系作者。

原文链接:fizzz.blog.csdn.net/article/details/100517302

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。