城堡的大门

随着小鱼和魔法师的深入,他们来到了一个古老的废弃城堡。城堡的大门上挂着一个巨大的锁,而锁的旁边有一排小抽屉,每个抽屉里都有一个物品。

魔法师对小鱼说:“这是一个古老的魔法宝箱,小鱼。为了打开这扇门,我们需要正确地组合这些物品。在Python的魔法世界中,我们使用列表和元组来存储和组合多个物品。”

小鱼:列表和元组?

魔法师继续说:“列表就像这些抽屉,你可以在其中放入任何物品,并随时添加或删除。而元组,就像一个封闭的魔法袋,一旦你放入物品,就不能再更改它。”

小鱼仔细地观察每个抽屉,然后说:“我看到每个抽屉上都有一个数字,这是不是它们的位置?”

魔法师点了点头:“正是如此,这就是列表中的索引。每个物品在列表中都有一个唯一的位置,从0开始计数。所以,第一个物品的索引是0,第二个物品的索引是1,以此类推。接下来让我详细给你讲讲。”

列表与元组是一种能让你组织和管理数据的超能力!

1.创建列表

想象一下,你有三个神奇魔法球。在Python中,我们可以用方括号[]来创建一个列表,像这样:

  1. magic_balls = ["红球", "蓝球", "绿球"]
  2. print("我有以下神奇魔法球:", magic_balls)

这段代码告诉计算机:“我有三个神奇魔法球,它们分别是红球、蓝球和绿球。请把它们列出来!”。计算机听懂了,会把列表中的魔法球展示出来。

2.添加和删除

当你获得了新的宝物,你可以把它添加到列表中。就像捡到一颗闪闪发光的宝石:

  1. magic_balls.append("闪亮宝石")
  2. print("我有以下神奇魔法球:", magic_balls)
  3. # 输出:['红球', '蓝球', '绿球', '闪亮宝石']

这段代码告诉计算机:“我捡到了一颗闪亮宝石,加入到我的魔法球列表中!”。计算机听懂了,会把新的宝物添加到列表末尾。

当你觉得某个宝物已经不再神奇,你可以把它从列表中移除。就像将一个有瑕疵的魔法药水丢掉:

  1. magic_balls.remove("红球")
  2. print("我有以下神奇魔法球:", magic_balls)
  3. # 输出:['蓝球', '绿球', '闪亮宝石']

这段代码告诉计算机:“把那个不神奇的红球从我的列表中去掉!”。计算机听懂了,会把红球从列表中删除。

3.访问列表元素

每个元素在列表中都有一个唯一的位置,称为索引。索引从0开始计数,与字符串下标位置类似。

例如:

  1. magic_balls=['蓝球', '绿球', '闪亮宝石']
  2. print("第一个元素是:"+magic_balls [0]) # 输出:蓝球
  3. print("第二个元素是:"+magic_balls [1]) # 输出:绿球
  • 要访问第一个元素("蓝球"),你可以使用 magic_balls [0]。
  • 要访问第二个元素("绿球"),你可以使用 magic_balls [1]。

4.交换列表元素位置

交换列表中两个元素的位置是一个常见的操作。这通常需要使用一个临时变量来完成,但在Python中,我们可以使用一个简洁的方法来交换两个元素。

例如,要交换上面列表中的"蓝球"和"绿球",你可以这样做:

  1. magic_balls [0], magic_balls [1] = magic_balls [1], magic_balls [0]

这行代码的意思是,将magic_balls [0]和magic_balls [1]的值交换。执行这行代码后,列表变为:

  1. ['绿球', '蓝球', '闪亮宝石']

这种交换方法非常简洁,不需要额外的临时变量,是Python中的一个很酷的特性。

5.创建元组

元组是另一种神奇的数据类型,类似于列表,但它具有超能力,不可修改。让我们来感受一下元组的魔法:

元组使用圆括号()来定义,而不是列表使用的方括号[]:

  1. #定义一个元组
  2. colors = ("红", "绿", "蓝")

假设你要记录一场魔法比赛的得分,而且这些得分是不会改变的。你可以使用元组来创建一个得分记录:

  1. scores = (98 87 95 91 100)
  2. print("魔法比赛的得分记录:" scores)

这段代码告诉计算机:“这是一场魔法比赛的得分记录,分数分别是98、87、95、91和100。”。计算机听懂了,会把这些分数展示出来。

元组的最大特点是它的不可变性。这意味着一旦你创建了一个元组,你就不能修改它。这与列表是不同的,列表是可以修改的。

例如,以下操作在列表中是合法的,但在元组中会引发错误:

  1. # 对于列表
  2. fruits = ["苹果", "香蕉", "樱桃"]
  3. fruits[1] = "芒果" # 把香蕉改为芒果,这是允许的
  4. # 对于元组
  5. colors = ("红", "绿", "蓝")
  6. colors[1] = "黄" # 这会引发错误

6.访问元组元素

元组虽然不能修改,但你可以使用索引来访问其中的值,位置仍然是从0开始。比如,你想知道第三场比赛的得分:

  1. third_score = scores[2]
  2. print("第三场比赛的得分是:" third_score)

这段代码告诉计算机:“我想知道第三场比赛的得分是多少!”。计算机听懂了,会告诉你正确的分数。

通过列表,你可以管理宝物,随时添加或删除;通过元组,你可以记录不变的数据,而且可以方便地查找。

听魔法师讲解完后,小鱼两眼放光。只见小鱼迅速地创建了一个列表,记录下了每个抽屉中的物品:

  1. items = ["苹果", "香蕉", "樱桃", "火龙果"]

突然,小鱼注意到地上有一张旧纸片,上面写着:“当火龙果在香蕉之前,大门将为你打开。”他意识到这是一个线索!

小鱼迅速地使用了列表的元素交换魔法来完成这个任务:

  1. # 交换物品的位置
  2. items[1], items[3] = items[3], items[1]
  3. print(items) # 输出:['苹果', '火龙果', '樱桃', '香蕉']

随着代码的执行,巨大的锁发出了响声,慢慢地打开了,城堡的大门也随之打开。

两人走进了城堡。

魔法盒之迷

当小鱼和魔法师进入城堡后,他们在一个古老的房间中发现了一个巨大的魔法盒,盒子的上方有几个凹槽。房间的另一侧有一个陈列台,上面摆放着各种形状的魔法物品。

魔法师解释说:“这个魔法盒是古代魔法师用来存储强大魔法的地方。为了保护魔法,他们设计了一个谜题。我们需要从陈列台上选择正确的物品,并按照特定的顺序放入魔法盒的凹槽中,才能解锁盒子并获得里面的魔法。”

小鱼注意到陈列台上的物品与魔法盒的凹槽大小都能匹配,但他不确定应该如何选择和排序。这时,他想到了列表和元组的知识。

他迅速地创建了一个列表,记录下了他认为应该放入魔法盒中的物品:

  1. # 创建一个列表
  2. items_to_use = ["红宝石", "钥匙", "绿宝石戒指", "金币"]

为了能够确定物品如何排序,小鱼继续在房间中寻找线索。这时,小鱼注意到墙上有一幅古老的壁画。壁画上描绘了四个物品:一个金币、一把钥匙、一个红宝石和一个绿宝石戒指。这四个物品与陈列台上的物品完全匹配。但更为重要的是,壁画的下方有一段古老的魔法歌谣:

银光闪烁的匙,首先照亮了路;

红宝石的火焰,紧随其后;

金币的光芒,为你指明方向;

绿宝石的戒指,守护着最后的希望。

小鱼仔细地读了这段歌谣,并迅速地意识到这是解开魔法盒之谜的关键。歌谣中描述的物品顺序与他最初的想法是不同的。

他迅速地调整了物品的顺序:

  1. # 根据魔法歌谣调整物品的顺序
  2. items_to_use[0], items_to_use[1] = items_to_use[1], items_to_use[0]
  3. items_to_use[2], items_to_use[3] = items_to_use[3], items_to_use[2]

这段代码将红宝石和钥匙交换位置,绿宝石戒指和金币交换位置。

然后,为了确保这个顺序不会被打乱,他使用元组来固定这个顺序:

  1. # 创建一个元组,固定物品的顺序
  2. final_order = tuple(items_to_use)
  3. print(final_order) #输出:('钥匙', '红宝石', '金币', '绿宝石戒指')

这段代码将列表items_to_use转为一个元组。

小鱼按照这个顺序,将物品放入魔法盒的凹槽中。随着最后一个物品的放入,魔法盒发出了一道光芒,然后缓缓打开,里面的光芒逐渐散去,小鱼和魔法师看到了一个闪闪发光的魔法碎片,它散发出温暖的光芒,仿佛有生命一般。小鱼小心翼翼地拿起魔法碎片,感受到了一股强大的魔法力量。

魔法师微笑地说:“这是一个非常古老的魔法碎片,它拥有强大的魔法能量。你通过解开魔法盒的谜题,证明了你已经掌握了列表和元组的知识,这个魔法碎片是你的奖励。”

小鱼高兴地说:“谢谢你,魔法师!我会继续努力,学习更多的编程知识。”

魔法师点点头:“你做得很好,小鱼。前方还有更多的挑战等待着你。每次你学会一个新的知识点,都会有一个新的魔法碎片等待着你。”

小鱼充满信心地说:“我不怕,我会继续努力,学习所有的编程知识,收集所有的魔法碎片。”

魔法师微笑地看着小鱼:“我相信你,小鱼。现在,让我们继续前进,探索更多的魔法世界。”

《Python魔法大冒险》010 魔法宝箱:列表与元组的探险的更多相关文章

  1. A Byte of Python 笔记(7)数据结构:列表、元组、字典,序列

    第9章 数据结构 数据结构,即可以处理一些数据的结构.或者说,它们是用来存储一组相关数据的. python 有三种内建的数据结构--列表.元组和字典. list = ['item1', 'item2' ...

  2. Python之路【第二篇】: 列表、元组、字符串、字典、集合

    本文内容: -------------------------------------- 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表(list) 序列是Pyt ...

  3. Python学习笔记(一):列表和元组

    1.列表和元组的主要区别在于:列表可以修改,元组则不能.即如果要根据要求添加元素,列表更适合,    如果出于某种原因,序列不能修改的时候,使用元组更为合适. 2.通用序列操作1)索引:正数索引时,p ...

  4. python基础之数字、字符串、列表、元组、字典

    Python基础二: 1.运算符: 判断某个东西是否在某个东西里面包含: in  为真 not in  为假 (1).算术运算符: 运算符 描述 实例 + 加  表示两个对象相加 a + b输出结果3 ...

  5. python学习笔记:第4天 列表和元组

    目录 基本数据类型:列表 基本数据类型:元组 补充知识 基本数据类型:列表 1. 列表的介绍 列表也是python的基础的数据类型之一,类似于Java中的数组一样,可以存放很多元素.列表是用括号括起来 ...

  6. python 基础学习笔记(3)--列表与元组

    **本次笔记主要内容为 列表,元组主要的功能和特性** **1.列表**: 学习过c语言的同学应该知道,c语言有数组这一功能,就是将数据类型相同的元素放在一起.由于python的变量没有数据类型,也就 ...

  7. python学习笔记:(五)列表与元组的异同

    在python中最基本的数据结构是序列(sequence),每一个元素被分配一个序号,即元素的位置,也称为索引,第一个索引是0,第二个则是1 元组与列表最大的区别就是: 元组不能更改:列表可以修改 p ...

  8. Python基础灬序列(字符串、列表、元组)

    序列 序列是指它的成员都是有序排列,并且可以通过下标偏移量访问到它的一个或几个成员.序列包含字符串.列表.元组. 字符串 chinese_zodiac = '鼠牛虎兔龙蛇马羊猴鸡狗猪' print(c ...

  9. Python基础教程之第2章 列表和元组

    D:\>python Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32 Typ ...

  10. python学习之:序列类型 之列表,元组,range

    列表 列表是可变序列,通常用于存放同类项目的集合(其中精确的相似程度将根据应用而变化). class list([iterable]) 可以用多种方式构建列表: 使用一对方括号来表示空列表: [ ] ...

随机推荐

  1. vue3+vite2+element-plus+ts搭建一个项目

    花了几天用 vue3+ vite2+ element-plus+ ts 搭了个 极简版骨架型数据管理系统,使用静态数据模拟动态路由,路由拦截,登录页面鉴权等,使用了iconify字体图标,整合了ces ...

  2. 文字生成图像 AI免费工具第二弹 DreamStudio

    介绍Stable Diffution,就也要提一下DreamStudio,它是Stable Diffusion的母公司Stability AI开发的一个文字生成图像工具,邮箱注册后可以免费生成125张 ...

  3. 2023-06-20:给定一个长度为N的数组arr,arr[i]表示宝石的价值 你在某天遇到X价值的宝石, X价值如果是所有剩余宝石价值中的最小值,你会将该宝石送人 X价值如果不是所有剩余宝石价值中的

    2023-06-20:给定一个长度为N的数组arr,arr[i]表示宝石的价值 你在某天遇到X价值的宝石, X价值如果是所有剩余宝石价值中的最小值,你会将该宝石送人 X价值如果不是所有剩余宝石价值中的 ...

  4. 1. Spring 简介

    1. Spring 概述 ‍ 官网地址:​https://spring.io/ ‍ Spring 是最受欢迎的企业级 Java 应用程序开发框架,数以百万的来自世界各地的开发人员使用 Spring 框 ...

  5. Python运维开发之路《WEB框架:Django》

    一.Web框架的本质 所有的web框架.web请求:本质上都是:socket 浏览器:socket客户端 服务器:socket服务端 1. socket服务端 import socket def ha ...

  6. 人工智能政策@🤗: 回应美国国家电信和信息管理局 (NTIA) 关于人工智能问责制的评论请求

    6 月 12 日,Hugging Face 向美国国家电信和信息管理局 NTIA 提交了一份关于 AI 责任政策的信息请求回应.在我们的回应中,我们强调了文档和透明度规范在推动 AI 责任过程中的作用 ...

  7. 什么是hive的高级分组聚合,它的用法和注意事项以及性能分析

    hive的高级分组聚合是指在聚合时使用GROUPING SETS.CUBE和ROLLUP的分组聚合. 高级分组聚合在很多数据库类SQL中都有出现,并非hive独有,这里只说明hive中的情况. 使用高 ...

  8. 玩转AI二维码:揭秘我的漂亮二维码生成秘诀

    这几天我又生成了很多漂亮的二维码图片,有了一些感受和想法,特总结此文,分享给大家.需要图片参数的同学可直接看文章最后,我生成了100多张不同风格的图片. 先看效果,喜欢的可以继续读下去. 背景 在这篇 ...

  9. java根据配置文件读取值

    <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --> <dependency> ...

  10. 【pandas小技巧】--按类型选择列

    本篇介绍的是pandas选择列数据的一个小技巧.之前已经介绍了很多选择列数据的方式,比如loc,iloc函数,按列名称选择,按条件选择等等. 这次介绍的是按照列的数据类型来选择列,按类型选择列可以帮助 ...