博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
py教程第9讲-元组和列表之一
阅读量:4982 次
发布时间:2019-06-12

本文共 4171 字,大约阅读时间需要 13 分钟。

可以将列表和元组当成普通的“数组”,它能保存任意数量任意类型的Python 对象。和数

组一样,通过从0 开始的数字索引访问元素,但是列表和元组可以存储不同类型的对象。
列表和元组有几处重要的区别。列表元素用中括号( [ ])包裹,元素的个数及元素的值可
以改变。元组元素用小括号(( ))包裹,不可以更改(尽管他们的内容可以)。元组可以看成是
只读的列表。通过切片运算( [ ] 和 [ : ] )可以得到子集(子集还是列表或者元组),这一点与字符串的使用方法一样。

列表:可以被修改,可以增长可以缩短,也可以嵌套。

 

>>> list1 = [1, 'nihao', 3.14, 50, 1000]

>>> list1[3]
50
>>> list1.append(2)  #append()方法只能在末尾追加
>>> list1
[1, 'nihao', 3.14, 50, 1000, 2]

>>> list1

['nihao', 3.14, 50, 100, 2, '父亲', '5']
>>> list1.insert(0, 23)  #insert(n, x)可以在任意位置追加元素,插在第n号元素之后,索引值n超过原列表值时,直接追加在末尾
>>> list1
[23, 'nihao', 3.14, 50, 100, 2, '父亲', '5']

>>> list1.insert(8, 1000)

>>> list1
[23, 'nihao', 3.14, 50, 100, 2, '父亲', '5', 1000]
>>> list1.insert(11, 10000)

 

>>> a

 

[12, 11, 23, 45, 619000.0]
>>> b
[2.0, [1, 'hello'], 13]
>>> a[2] = [23]  
###等号右边是一个列表,原列表中的该元素被替换成一个列表
>>> a
[12, 11, [23], 45, 619000.0]
>>> a[2] = 3.14  
###等号右边是一个数字,替换之后依旧是数字
>>> a
[12, 11, 3.14, 45, 619000.0]
>>> b[1][1]
###用两个分号访问和更新列表中列表的元素
'hello'
>>> b[1][1] = 'world'  
###元素依旧是字符串
>>> b
[2.0, [1, 'world'], 13]
>>> b[1][1] = [2, 'nihao']
###元素替换成列表
>>> b
[2.0, [1, [2, 'nihao']], 13]

以上这两种操作都是单个元素插入,当我们需要将大量数据放在列表末尾的时候,我们就需要extend()方法了

>>> list1

[23, 3.14, 2, '5']
>>> list1.extend(['邓艾', 9999])
>>> list1
[23, 3.14, 2, '5', '邓艾', 9999]

>>> list1.extend(10)

Traceback (most recent call last):
File "<pyshell#87>", line 1, in <module>
list1.extend(10)
TypeError: 'int' object is not iterable

>>> list1[2:4]
[3.14, 50]
>>> list1[4] = 100
>>> list1
[1, 'nihao', 3.14, 50, 100, 2]
>>> len(list1)
6
>>> list1[6] =
KeyboardInterrupt
>>> list1[6] = '小甲鱼'
Traceback (most recent call last):
File "<pyshell#41>", line 1, in <module>
list1[6] = '小甲鱼'
IndexError: list assignment index out of range

 

删除列表中的元素的方法:

>>> list1

[23, 'nihao', 3.14, 2, '父亲', '5']
>>> del list1[1]  #知道位置,不知道内容,用del
>>> list1
[23, 3.14, 2, '父亲', '5']
>>> list1.remove('父亲')  #知道内容,但是不知道位置,用remove()方法
>>> list1
[23, 3.14, 2, '5']

>>> member

['a', 'ATG', 3.14, 500]
>>> member.pop(0) #pop()方法也可用来删除元素,默认取出最后一个元素并返回。加上参数(即列表索引值)时,取出对应元素。
'a'
>>> member
['ATG', 3.14, 500]
>>> member.pop()
500
>>> member
['ATG', 3.14]
>>> list2 = member.pop()

>>> list2

3.14

>>> member

['ATG']

 字符串可以用‘+’拼接,用‘*’进行复制若干次。列表同样也可以。

>>> list1 = [123, 345]
>>> list2 = [234, 456]
>>> list3 = list1 + list2
>>> list3
[123, 345, 234, 456]
>>> list3 *= 3
>>> list3
[123, 345, 234, 456, 123, 345, 234, 456, 123, 345, 234, 456]
>>> list4 = list2 * 2
>>> list4
[234, 456, 234, 456]
 
列表中可以包罗万象,甚至是列表。那么对于列表中的列表中的元素,其成员关系如何呢?

>>> list5 = [11, [23,34]]

>>> 23 in list5
False
>>> [23, 34] in list5 ##in 和 not in只能判断一个层次的成员关系。
True

>>> 34 in list5[1]

True

 访问列表中列表中的值,应该如何访问:用两个方括号

>>> list5[1][1]

34
list.index()返回元素的索引值;list.sort()按大小顺序排列列表list.reverse()反向排序;list.count()计算列表中制定元素出现的次数。要拷贝列表,使用分片的方式

>>> listA = list3[:]

>>> listA
[456, 456, 456, 345, 345, 345, 234, 234, 234, 123, 123, 123]
>>> list3.sort()
>>> list3
[123, 123, 123, 234, 234, 234, 345, 345, 345, 456, 456, 456]
>>> listA
[456, 456, 456, 345, 345, 345, 234, 234, 234, 123, 123, 123]

 

 

元组:跟列表一样,元组也可以向字符串那样使用'+','*',也可以切片和利用索引值访问元组。

>>> Tuple = ('robots', 77, 99,9, "try")
>>> Tuple
('robots', 77, 99, 9, 'try')
>>> len(Tuple)
5
>>> Tuple[4:]
('try',)
>>> Tuple[:4]
('robots', 77, 99, 9)

>>> Tuple[1]

77

>>> Tuple[1] = 4
Traceback (most recent call last):
File "<pyshell#47>", line 1, in <module>
Tuple[1] = 4
TypeError: 'tuple' object does not support item assignment
>>> Tuple.append(2)
Traceback (most recent call last):
File "<pyshell#48>", line 1, in <module>
Tuple.append(2)
AttributeError: 'tuple' object has no attribute 'append'

利用切片将元组切片之后,然后加上新的元素,间接更新一个元组或者利用切片间接删除一个元素。

>>> tuple4
('小甲鱼', 'nihao', 10, '一刀', 1, 'China', 3.14)
>>> tuple5 = tuple4[:3] + ('戈多',) + tuple4[3:]  
##这里('戈多',)的逗号和括号都不能少
>>> tuple5
('小甲鱼', 'nihao', 10, '戈多', '一刀', 1, 'China', 3.14)
>>> tuple6 = tuple4[:2] + tuple4[4:]
>>> tuple6
('小甲鱼', 'nihao', 1, 'China', 3.14)

当创建的元组中只有一个元素时,要在这个元素后面加上',',以确保它是一个元组。

>>> tuple1 = (9)

>>> type(tuple1)
<class 'int'>
>>> tuple1 = (9,) ##可以看出元组的关键符号是',',而不是小括号。但是列表的关键就是中括号
>>> type(tuple1)
<class 'tuple'>
>>> tuple1 = 1, 2, 3
>>> type(tuple1)
<class 'tuple'>

 

连接操作符、重复操作符、成员关系操作符、逻辑操作符都可以用在元组和列表上。

转载于:https://www.cnblogs.com/SWTwanzhu/p/6086243.html

你可能感兴趣的文章
挂FORM时找不到对应的功能(function)
查看>>
数论的一点前置知识
查看>>
IDEA修改git账号及密码的方法 ----绝壁好使
查看>>
现代软件工程团队项目阿尔法阶段_版本上线_2018.01.09
查看>>
《Qt编程的艺术》——5.1 手动布局
查看>>
win7下无法安装QTP-少了Microsoft Visual c++2005 sp1运行时组件
查看>>
iPhone开发笔记[10/50]:调用initWithNibName方法时不能写上.xib
查看>>
Palindrome subsequence(区间dp+容斥)
查看>>
三、WebView网络显示控件
查看>>
ASP.NET MVC 给ViewBag赋值Html字符转义问题
查看>>
Q3:如何做到服务的独立部署
查看>>
WP8中使用async/await扩展HttpWebRequest
查看>>
排序算法
查看>>
(转)Oracle、SQL Server下MD5+Base64密码加密实现
查看>>
Tomcat7配置数据源
查看>>
linux的chmod与chown命令详解
查看>>
SQL Server的复合索引适当用法
查看>>
[转]俞敏洪:我和马云就差了8个字... [来自: news.mbalib.com]
查看>>
intersection &union&zip
查看>>
Spark算子
查看>>