暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

[Python学习笔记]Python基础03之列表与元组

跟着小白学Python 2020-09-13
290

点击上方蓝字关注我们,一起涨姿势!




正文共:3870 预计阅读时间:10分钟


列表 是 Python 中最常用的数据类型,它是一种可变序列。一个列表可以包含不同类型的元素,但通常在使用时使用相同类型


列表的创建


创建一个列表非常简单,只要把逗号分隔的数据项使用方括号括起来即可

常见的方式有:

  • 仅使用方括号,可以创建空列表

>>> a = [] # 空列表
>>> type(a)
<class 'list'> # list表示a的类别是列表
  • 使用方括号,其中各项以逗号分隔

>>> b = ['孙悟空'] # 单个值
>>> type(b)
<class 'list'>
>>> c = ['郭靖','黄蓉','洪七公','黄药师','周伯通'] # 多个值
>>> type(c)
<class 'list'>
  • 使用 list() 将其他类型转换为列表

>>> d = '小桃无主自开花,烟草茫茫带晚鸦。几处败垣围故井,向来一一是人家。'
>>> list(d) # 将字符串转换为列表
['小', '桃', '无', '主', '自', '开', '花', ',', '烟', '草', '茫', '茫', '带', '晚', '鸦', '。', '几', '处', '败', '垣', '围', '故', '井', ',', '向', '来', '一', '一', '是', '人', '家', '。']


访问列表里的值


由于列表也是一种序列,所以和字符串一样,可以通过索引或切片访问列表中的值

  • 取单个值

>>> s = ['郭靖','黄蓉','洪七公','黄药师','周伯通']
>>> s[2# 获取下标为2的值
'洪七公'
>>> s[-2] # 获取下标为-2的值
'黄药师'
>>> s[100] # 超过列表范围会报错
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
s[100]
IndexError: list index out of range
  • 切片(取一组值)

>>> s = ['郭靖','黄蓉','洪七公','黄药师','周伯通']
>>> s[1:3# 获取下标1到3(不含)的值
['黄蓉', '洪七公']
>>> s[1:] # 获取下标1到末尾的值
['黄蓉', '洪七公', '黄药师', '周伯通']
>>> s[-3:# 获取倒数3个值
['洪七公', '黄药师', '周伯通']
>>> s[:3# 获取从头开始到下标为3(不含)的值
['郭靖', '黄蓉', '洪七公']
>>> s[:-1# 获取从头开始到下标为-1(不含)的值
['郭靖', '黄蓉', '洪七公', '黄药师']
>>> s[-1:-4:-1] # 获取从下标为-1到-4(不含)的值,反向输出
['周伯通', '黄药师', '洪七公']
>>> s[-4:-1] # 获取从下标为-4到-1(不含)的值,正向输出
['黄蓉', '洪七公', '黄药师']


修改、添加和删除列表元素


修改列表元素很简单,只要指定列表和要修改的元素的索引即可

>>> s = ['郭靖','黄蓉','洪七公','黄药师','周伯通']
>>> s[-1] = "老顽童"
>>> print(s)
['郭靖''黄蓉''洪七公''黄药师''老顽童']

Python提供了多种向现有列表添加新数据的方式

  • 添加单个数据

>>> s = ['郭靖','黄蓉','洪七公','黄药师','周伯通']
>>> s.append('铁木真'# 使用append()在列表末尾添加值
>>> print(s)
['郭靖''黄蓉''洪七公''黄药师''周伯通''铁木真']
  • 添加多个数据

>>> s = ['郭靖','黄蓉','洪七公','黄药师','周伯通']
>>> n = ['柯镇恶','朱聪','韩宝驹','南希仁','张阿生','全金发','韩小莹']
>>> s.extend(n) # 使用extend()在添加其他列表
>>> print(s)
['郭靖', '黄蓉', '洪七公', '黄药师', '周伯通', '柯镇恶', '朱聪', '韩宝驹', '南希仁', '张阿生', '全金发', '韩小莹']
  • 指定位置插入数据

>>> s = ['郭靖','黄蓉','洪七公','黄药师','周伯通']
>>> s.insert(0,'梅超风'# 在下标为0的位置插入值
>>> s
['梅超风''郭靖''黄蓉''洪七公''黄药师''周伯通']

Python也提供了多种删除元素的方式

  • 使用del删除指定位置的元素

>>> s = ['梅超风', '郭靖', '黄蓉', '洪七公', '黄药师', '周伯通']
>>> del s[0]
>>> print(s)
['郭靖', '黄蓉', '洪七公', '黄药师', '周伯通']
  • 使用pop()删除并获取值

>>> s = ['梅超风', '郭靖', '黄蓉', '洪七公', '黄药师', '周伯通']
>>> print(s.pop()) # 默认删除最后的值并获取该值
周伯通
>>> print(s)
['梅超风''郭靖''黄蓉''洪七公''黄药师'# 最后的值被删除
>>> print(s.pop(0)) # 指定删除下标为0的值
梅超风
>>> print(s)
['郭靖''黄蓉''洪七公''黄药师'# 在上一步的基础上删下标为0的值
  • 根据值进行删除

>>> s = ['梅超风', '郭靖', '黄蓉', '洪七公', '黄药师', '周伯通']
>>> s.remove('梅超风')
>>> print(s)
['郭靖', '黄蓉', '洪七公', '黄药师', '周伯通']


组织列表


永久性排序(会改变原有列表)

>>> cars = ['bmw','audi','toyota','subaru','mazda']
>>> cars.sort()
>>> cars
['audi', 'bmw', 'mazda', 'subaru', 'toyota']

临时排序

>>> cars = ['bmw','audi','toyota','subaru','mazda']
>>> sorted(cars)
['audi', 'bmw', 'mazda', 'subaru', 'toyota']
>>> cars # 原列表未变
['bmw', 'audi', 'toyota', 'subaru', 'mazda']

反转列表

>>> s = ['梅超风', '郭靖', '黄蓉', '洪七公', '黄药师', '周伯通']
>>> s.reverse()
>>> print(s)
['周伯通', '黄药师', '洪七公', '黄蓉', '郭靖', '梅超风']

复制列表

>>> s = ['梅超风', '郭靖', '黄蓉', '洪七公', '黄药师', '周伯通']
>>> n = s[:# 复制列表并赋值给变量n
>>> print(n) # n的值与s相同
['梅超风', '郭靖', '黄蓉', '洪七公', '黄药师', '周伯通']


列表的遍历


使用 for循环  可以依次获取序列中的值,for循环的代码结构如下:


举例:

n = ['柯镇恶','朱聪','韩宝驹','南希仁','张阿生','全金发','韩小莹']
for i in n: # i为变量名,列表中的值依次赋值给i
print(f'我是江南七侠中的{i}') # 缩进的代码块会依次执行
print('介绍完毕!') # 未缩进的代码会在for循环执行结束执行

输出结果为:


数值列表的创建


  • 使用range()函数可以创建一系列的数字

for i in range(1,10):
print (i)

输出为:



可以看出range(),从指定的数字开始,到指定的数字结束(不包括结束的数字),此外range()还有一个参数步长



  • 我们可以使用list(range())创建数字列表

>>> a = list(range(1,10))
>>> print(a)
[1, 2, 3, 4, 5, 6, 7, 8, 9]


元组


元组 和列表非常相似,但它是一种不可变序列,就像字符串一样。元组使用圆括号标识


创建元组

  • 空括号表示空元组

>>> a = () # 空元组
>>> type(a)
<class 'tuple'>
  • 使用带逗号的值表示单个元素的元组,如下a,b是元组,而c,d是字符串

>>> a = '张无忌',
>>> type(a)
<class 'tuple'>
>>> b = ('张无忌',)
>>> type(b)
<class 'tuple'>
>>> c = '张无忌'
>>> type(c)
<class 'str'>
>>> d = ('张无忌')
>>> type(d)
<class 'str'>
  • 用逗号分隔的多元素元组

>>> n = ('柯镇恶','朱聪','韩宝驹','南希仁','张阿生','全金发','韩小莹'
>>> type(n) # 看起来和列表很相似,但是通过type检查可以看到它的类型为tuple
<class 'tuple'>
  • 使用tuple()转换可变类型生成元组

>>> n = ['柯镇恶','朱聪','韩宝驹','南希仁','张阿生','全金发','韩小莹']
>>> type(n) # n为列表类型
<class 'list'>
>>> n1 = tuple(n) # 使用tuple转换列表为元组
>>> type(n1)
<class 'tuple'>

元组与字符串类似,下标索引从0开始,可以进行截取,组合,示例如下:

>>> n = ('柯镇恶','朱聪','韩宝驹','南希仁','张阿生','全金发','韩小莹')
>>> n[0]
'柯镇恶'
>>> n[1:3]
('朱聪', '韩宝驹')
>>> n[-5:-2]
('韩宝驹', '南希仁', '张阿生')
>>> n[-1:-3:-1]
('韩小莹', '全金发')


- End -



[Python学习笔记]Python基础01之入门

[Python学习笔记]Python基础02之字符串

Python编程小知识]之什么是Python

Python编程小知识]之开发环境搭建



扫码二维码

获取更多精彩

木一学习室


如果喜欢,欢迎分享-点赞-点在看


文章转载自跟着小白学Python,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论