列表值看起来像这样: [‘cat’, ‘bat’, ‘rat’, ‘elephant’]。就像字符串值用引号来标记字符串的起止一样, 列表用左方括号开始, 右方括号结束,即[]。列表中的值也称为“表项”。表项用逗号分隔(就是说,它们是“逗号分隔的”)。例如, 在交互式环境中输入以下代码:
(base) C:\Users\Administrator>python
Python 3.8.3 (default, Jul 2 2020, 17:30:36) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> list = [1, 2, 3]
>>> list
[1, 2, 3]
>>> list = ['hello','how','are','you']
>>> list
['hello', 'how', 'are', 'you']
>>> list1 = ['baidu', 'jd', 1997, 2000]
>>> list1
['baidu', 'jd', 1997, 2000]
>>>
从例子中的list1能看出来:列表的数据项不需要具有相同的类型
1、访问列表中的值
与字符串的索引一样,列表索引从 0 开始,第二个索引是 1,依此类推。
通过索引列表可以进行截取、组合等操作。示意图如下
我们在代码中试一试
list = ['red', 'green', 'blue', 'yellow', 'white', 'black']
print( list[0] )
print( list[1] )
print( list[2] )
输出结果
red
green
blue
索引也可以从尾部开始,最后一个元素的索引为 -1,往前一位为 -2,以此类推。
例子
list = ['red', 'green', 'blue', 'yellow', 'white', 'black']
print( list[-1] )
print( list[-2] )
print( list[-3] )
输出
black
white
yellow
使用下标索引来访问列表中的值,同样你也可以使用方括号 [] 的形式截取字符,如下所示:
注意:结果值不包含停止索引
实例
nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]
print(nums[0:4])
输出
[10, 20, 30, 40]
使用负数索引值截取:
实例
list3 = ["a", "b", "c", "d","e"]
# 从第二位开始(包含),截止到倒数第二位(不包含)
list3[1:-2]
输出结果
['b', 'c']
如果切面后面没有停止索引值,那就表示一直到结尾,例如
(base) C:\Users\Administrator>python
Python 3.8.3 (default, Jul 2 2020, 17:30:36) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> list3 = ["a", "b", "c", "d","e"]
>>> list3[1:]
['b', 'c', 'd', 'e']
>>>
2、更新列表
你可以对列表的数据项进行修改或更新,你也可以使用 append() 方法来添加列表项,如下所示:
list = ['baidu', 'hello', 1997, 2000]
print ("第三个元素为 : ", list[2])
list[2] = 2001
print ("更新后的第三个元素为 : ", list[2])
list1 = ['Google', 'Jd', 'Taobao']
# 在列表末端添加一个元素
list1.append('Baidu')
print ("更新后的列表 : ", list1)
输出
第三个元素为 : 1997
更新后的第三个元素为 : 2001
更新后的列表 : ['Google', 'Jd', 'Taobao', 'Baidu']
3、删除列表元素
使用 del 语句或remove方法来删除列表的的元素,如下实例:
list = ['Google', 'Jd', 1997, 2000]
print ("原始列表 : ", list)
# list.remove(1997) 和下面这句等价
del list[2]
print ("删除第三个元素 : ", list)
输出
原始列表 : ['Google', 'Jd', 1997, 2000]
删除第三个元素 : ['Google', 'Jd', 2000]
4、列表操作符
列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。
如下所示:
表达式 | 结果 | 描述 |
---|---|---|
len([1, 2, 3]) | 3 | 长度 |
[1, 2, 3] + [4, 5, 6] | [1, 2, 3, 4, 5, 6] | 组合 |
[‘Hi!’] * 4 | [‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’] | 重复 |
3 in [1, 2, 3] | True | 元素是否存在于列表中 |
3 not in [1, 2, 3] | False | 元素不在列表中,不在为True,在为False,和in相反 |
for x in [1, 2, 3]: print(x, end=" ") | 1 2 3 | 迭代 |
5、嵌套列表
使用嵌套列表即在列表里创建其它列表,例如:
>>>a = ['a', 'b', 'c']
>>> n = [1, 2, 3]
>>> x = [a, n]
>>> x
[['a', 'b', 'c'], [1, 2, 3]]
>>> x[0]
['a', 'b', 'c']
>>> x[0][1]
'b'
6、列表函数
- len(list):列表元素个数
- max(list):返回列表元素最大值
- min(list):返回列表元素最小值
- list(seq):将元组转换为列表
7、列表常用方法
- list.append(obj):在列表末尾添加新的对象
- list.count(obj):统计某个元素在列表中出现的次数
- list.extend(seq):在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
- list.index(obj):从列表中找出某个值第一个匹配项的索引位置
- list.insert(index, obj):将对象插入列表
- list.pop([index=-1]):移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
- list.remove(obj):移除列表中某个值的第一个匹配项
- list.reverse():反向列表中元素
- list.sort( key=None, reverse=False):对原列表进行排序
- list.clear():清空列表
- list.copy():复制列表
8、类似列表的类型
列表并不是唯一表示序列值的数据类型。例如, 字符串、元组和列表实际上很相似,只要你认为字符串是单个文本字符的列表。对列表的许多操作, 也可以作用于字符串和元组:按下标取值、 切片、 用于 for 循环、 用于 len(), 以及用于 in 和 not in 操作符。
8、1元组
元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
实例
tup1 = ('physics', 'chemistry', 1997, 2000)
tup2 = (1, 2, 3, 4, 5 )
8、2访问元组
元组与字符串类似,下标索引从0开始,可以进行截取,组合等,如下实例:
tup1 = ('physics', 'chemistry', 1997, 2000)
tup2 = (1, 2, 3, 4, 5, 6, 7 )
print "tup1[0]: ", tup1[0]
print "tup2[1:5]: ", tup2[1:5]
输出
tup1[0]: physics
tup2[1:5]: (2, 3, 4, 5)
9、列表和元组的转换
正如 str(42)将返回’42’,即整数 42 的字符串表示形式, 函数 list()和 tuple()将返回传递给它们的值的列表和元组版本。在交互式环境中输入以下代码, 注意返回值与传入值是不同的数据类型
>>> tuple(['cat', 'dog', 5])
('cat', 'dog', 5)
>>> list(('cat', 'dog', 5))
['cat', 'dog', 5]
>>> list('hello')
['h', 'e', 'l', 'l', 'o']