精通python100天——第五天:列表、元组

列表值看起来像这样: [‘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']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值