Python基础教程——第二章 列表与元组

本文深入探讨Python中的两种基本序列数据结构——列表和元组。列表是可变的,常用于存储一组可修改的数据;元组则是不可变的,适合用作映射的键或作为返回值。通用的序列操作包括索引、分片、相加、乘法和成员资格检查。列表提供了多种方法,如append、extend、sort等,而元组主要通过其不可变性提供独特价值。了解这些基础将有助于提升Python编程能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本章引入一个概念:数据结构。Python中,最基本的数据结构是序列。序列中每个元素被分配给一个位置,称为索引。Python中有6种内建的序列:

  • 列表
  • 元组
  • 字符串
  • Unicode字符串
  • buffer对象
  • xrange对象
    最常用的是列表和元组,两者最大的区别在于列表可以修改,而元组不可以修改。

通用的序列操作

  • 索引
  • 分片
  • 序列相加
  • 乘法
  • 成员资格 in:检查值是否在序列中,返回true或false
  • 长度,最大值,最小值

列表

list函数

list函数实现字符串到list的转换:

>>>list'hello')
['h','e','l','l','o']

列表的基本操作

  • 元素赋值
  • 删除:del
  • 分片赋值

列表方法

方法的调用方式为:对象.方法(参数)
1.append
append在列表末尾添加新的元素

>>>lst = [1,2,3]
>>>lst,append(4)
>>>1st
[1,2,3,4]

2.count
count 方法统计某个元素在列表中出现的次数

>>>['to','be','or','not','to','be'].count('to')
>2
>>>x=[[1,2],1,1,[2,1,[1,2]]]
>>>x.count(1)
>1

3.extend
extend在列表末尾一次性追加另一个序列中的多个值。

>>>a=[1,2,3]
>>>b=[4,5,6]
>>>a.extend(b)
>>>a
>[1,2,3,4,5,6]

extend和连接操作’+’最大的区别在于extend修改了被扩展的序列,而连接操则不修改被扩展序列。

4.index
index方法用于从列表中找出某个值第一个匹配项的索引位置。

>>>knights=['we','are','the','knights','who','say','in']
>>>knights.index('who')
>4

5.insert
insert将对象插入到列表中。

>>>numbers=[1,2,3,4,5,6,7]
>>>numbers.insert(3,'four')
>>>number
>[1,2,3,'four',5,6,7]

6.pop
pop方法会 移除列表中的一个元素,默认是最后一个,并返回该元素的值。

>>>x=[1,2,3]
>>>x.pop()
>3
>>>x
>[1,2]
>>>x.pop(0)
>1
>>>x
>[2]

7.remove
remove方法用于移除列表中某个值的第一个匹配项。

>>>x = ['to','be','or','not','to','be']
>>>x.remove('be')
>>>x
>['to','or','not','to']

8.reverse
reverse将列表中的元素反向存放,改变对象值但不返回值。

>>>x=[1,2,3]
>>>x.reverse()
>>>x
>[3,2,1]

9.sort
sort方法用于在原位置(对列表进行更改)对列表进行排序。sort是默认的升序排序。

>>>x=[4,6,2,1,7,9]
>>>x.sort()
>>>x
>[1,2,4,6,7,9]

sort会修改原有对象,如果不想修改原有对象可以:

>>>x=[4,6,2,1,7,9]
>>>y=x[:]
>>>y.sort()
>>>x
>[4,6,2,1,7,9]
>>>y
>[1,2,4,6,7,9]

值得注意的是,调用x[:]是一种比较高校的复制整个列表的方法。
但是只是简单的把x赋值给y是没用的,因为这样会使x和y指向同一个列表。

>>>x=[4,6,2,1,7,9]
>>>y=x
>>>y.sort()
>>>x
>[1,2,4,6,7,9]
>>>y
>[1,2,4,6,7,9]

另外一种获得已排序好的列表副本的方法是sorted函数:

>>>x=[4,6,2,1,7,9]
>>>y=sorted(x)
>>>x
>[4,6,2,1,7,9]
>>>y
>[1,2,4,6,7,9]

10.高级排序
sort方法有两个可选参数:key和reverse。如果使用元素的长度进行排序,可以使用len作为键函数:

>>>x=['aar','dkjvkdf','fdkfklf']
>>>x.sort(key=len)

另一个关键字参数reverse是布尔值。

>>>x=[4,6,2,1,7,9]
>>>x.sort(reverse=True)
>>>x
>[9,7,6,4,2,1]

元组

元组创建

>>>1,2,3
>(1,2,3)
>>>(4,5,6)
>(4,5,6)
>>>()
>()
>>>42
>42
>>>42,
>(42,)
>>>3*(40+2,)
>(42,42,42)

tuple函数

tuple函数以一个序列作为参数并把它转换为元组

>>>tuple([1,2,3])
>(1,2,3)
>>>tuple('abc')
>('a','b','c')
>>>tuple((1,2,3))
>(1,2,3)

元组的意义

使用元组的两个重要原因:
- 在映射中可以当作键来使用,而列表则不行
- 元组作为很多内建函数和方法的返回值存在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值