python元组列表里追加元素_python 之 列表list && 元组tuple

目录:

列表

列表基本操作

列表的操作符

列表的函数和方法

元组

介绍:

列表是一种可变的有序集合,可以进行访问、添加和删除操作。

元组是一种不可变的有序集合,可以访问。

1、列表的基本操作

创建列表

1 ls = ['mary', 'tom', 'kate']2 ['mary', 'tom', 'kate']

注意:列表中的元素可以为不同类型,且可以为列表

1 In [29]: ls2=[1,2,'d','fairy',[1,4]]2 In [30]: ls23 Out[30]: [1, 2, 'd', 'fairy', [1, 4]]

列表元素的访问和截取

1 In [7]: ls[1]2 Out[7]: 'tom'

3

4 In [8]: ls[-1]5 Out[8]: 'kate'

6

7 // 包含1从1开始的元素:ls[1],ls[2]8 In [11]: ls[1:]9 Out[11]: ['tom', 'kate']10

11 // 不包含2到2为止的元素:ls[0],ls[1]12 In [13]: ls[:2]13 Out[13]: ['mary', 'tom']14

15 //ls中的所有元素16 In [9]: ls[:]17 Out[9]: ['mary', 'tom', 'kate']

更新和添加列表元素

1 //更新列表元素2 In [92]: ls[1]='jerry'

3 In [93]: ls4 Out[93]: ['mary', 'jerry', 'kate']

1 // 在列表尾部添加元素 'me'

2 In [16]: ls.append('me')3 In [17]: ls4 Out[17]: ['mary', 'tom', 'kate', 'me']5

6 // 在列表索引为2处添加元素 'jack'

7 In [18]: ls.insert(2,'jack')8 In [19]: ls9 Out[19]: ['mary', 'tom', 'jack', 'kate', 'me']

注意:不存在的元素不可以用索引来引用或添加

1 //注意:不存在的元素不可以用索引来引用或者添加2 In [14]: ls[3]3 ---------------------------------------------------------------------------

4 IndexError Traceback (most recent call last)5 in ()6 ----> 1 ls[3]7 IndexError: list index out of range8

9 In [15]: ls[3]='me'

10 ---------------------------------------------------------------------------

11 IndexError Traceback (most recent call last)12 in ()13 ----> 1 ls[3]='me'

14 IndexError: list assignment index out of range

删除列表元素

1 //删除列表的最后一个元素,且返回此元素2 In [20]: ls.pop()3 Out[20]: 'me'

4 In [21]: ls5 Out[21]: ['mary', 'tom', 'jack', 'kate']6

7 //删除列表索引为2处的元素且返回此元素8 In [22]: ls.pop(2)9 Out[22]: 'jack'

10 In [23]: ls11 Out[23]: ['mary', 'tom', 'kate']12

13 // 移除列表中匹配为'tom'的元素,不返回任何值14 In [25]: ls.remove('tom')15 In [26]: ls16 Out[26]: ['mary', 'kate']17

18 //清空列表19 lIn [27]: ls.clear()20 In [28]: ls21 Out[28]: []

1 //删除索引为0的列表元素2 In [88]: ls3 Out[88]: [1, 2]4 In [89]: dells[0]5 In [90]: ls6 Out[90]: [2]

删除列表

1 In [96]: lss=[1,2,3]2 In [97]: dellss3 In [98]: lss4 ---------------------------------------------------------------------------

5 NameError Traceback (most recent call last)6 in ()7 ----> 1lss8

9 NameError: name 'lss' is not defined

2、列表操作符

1 //列表长度2 In [33]: len([1,2,3])3 Out[33]: 3

4

5 //列表加6 In [34]: [1,2,3]+[4,5,6]7 Out[34]: [1, 2, 3, 4, 5, 6]8

9 //列表乘10 In [35]: ['Echo']*3

11 Out[35]: ['Echo', 'Echo', 'Echo']12

13 //判断是否在列表中14 In [36]: 1 in [1,2,3]15 Out[36]: True16

17 In [37]: 1 in [4,2,3]18 Out[37]: False

3、列表的函数和方法

函数

1 //返回列表长2 In [38]: len([1,2,3])3 Out[38]: 3

4

5 //返回列表中最大元素6 In [39]: max([1,2,3])7 Out[39]: 3

8

9 //返回列表中最小元素10 In [40]: min([1,2,3])11 Out[40]: 1

12

13 //将元组转化为列表14 In [41]: list((1,2,3))15 Out[41]: [1, 2, 3]

方法

1 // 统计列表中'a'出现的次数,并返回次数2 In [70]: ['a','b','f',1,'a',3].count('a')3 Out[70]: 2

4

5 // 统计列表中'a'第一次出现的索引,并返回索引号6 In [73]: ['a','b','f',1,'a',3].index('a')7 Out[73]: 08

9 //在列表后追加l另一列表中多个元素,不返回10 In [42]: ls=['a','b','f',1,'a',3]11 In [45]: ls.extend([1,7,8])12 In [46]: ls13 Out[46]: ['a', 'b', 'f', 1, 'a', 3, 1, 7, 8]14

15 //列表的元素反转,不返回16 In [49]: ls.reverse()17 In [50]: ls18 Out[50]: [8, 7, 1, 3, 'a', 1, 'f', 'b', 'a']19

20 //列表的排序(可以在sort([func])里指定排序用的方法),不返回21 In [53]: ls=[1,4,2,7,3]22 In [54]: ls.sort()23 In [55]: ls24 Out[55]: [1, 2, 3, 4, 7]

注意:以上不返回的函数和方法就是对列表本身做修改,不会生成新的列表,这里一定要注意!

在python3.6中,赋值和copy方法是一样的:

1 In [80]: ls=[1,2,3]2 //赋值3 In [81]: ls_=ls4 //copy方法5 In [82]: ls_c=ls.copy()6

7 In [83]: ls_8 Out[83]: [1, 2, 3]9 In [84]: ls_c10 Out[84]: [1, 2, 3]11

12 //改变ls本身的值13 In [85]: ls=[1,2]14

15 //两者皆不改变16 In [86]: ls_17 Out[86]: [1, 2, 3]18 In [87]: ls_c19 Out[87]: [1, 2, 3]

我本地的python2.7结果和以上是一样的。

注意:在python2中有cmp(list1,list2)函数,可以比较两个列表是否相等,但是在python3中没有这个函数

1 //python2.7中2 >>> cmp([1,2,3],[4,5,6])3 -1

4 >>> cmp([1,2,3],[1,2,3])5 06

7 //python3.6中8 In [100]: cmp([1,2,3],[4,1,2])9 ---------------------------------------------------------------------------

10 NameError Traceback (most recent call last)11 in ()12 ----> 1 cmp([1,2,3],[4,1,2])13

14 NameError: name 'cmp' is not defined

4、元组

元组的操作和列表基本一致,需要注意的几个地方是:

元组的创建是 ” () “,列表的创建是 " [] ", 列表只有一个元素时创建没有问题,但是如果元素只有一个元素,需要在元素后加”,“,否则会被认为只是一个元素本身,元组的创建可以不加” () “;

1 //加括号创建2 In [101]: tp=(1,2,3)3 In [102]: tp4 Out[102]: (1, 2, 3)5

6 //不加括号创建7 In [103]: tp=1,2,3

8 In [104]: tp9 Out[104]: (1, 2, 3)10

11 //只有一个元素且不加逗号,不会被识别为元组12 In [105]: tp=(1)13 In [106]: type(tp)14 Out[106]: int15

16 //只有一个元素但是加逗号,会被识别成元组17 In [107]: tp=(1,)18 In [108]: type(tp)19 Out[108]: tuple

除上述不同之外,元组和列表的访问、截取、操作符和函数都是一样的,元组没有更新、添加和删除元素的操作,但是可以删除元组本身,和list的删除一样;

1 In [109]: deltp2 In [110]: tp3 ---------------------------------------------------------------------------

4 NameError Traceback (most recent call last)5 in ()6 ----> 1 tp

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值