前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >什么叫做类比,为什么有些 Python 入门教程结构不合理?

什么叫做类比,为什么有些 Python 入门教程结构不合理?

作者头像
青南
发布2020-09-14 16:01:07
4330
发布2020-09-14 16:01:07
举报
文章被收录于专栏:未闻Code未闻Code

摄影:产品经理

这家店的网红脸太多了

想必关注未闻 Code的同学或多或少都在网上看过各种各样的 Python 入门教程。这些教程在讲 Python 基础数据结构的时候,一般是按照下面这个模式来讲的:

  1. 数字、字符串、浮点数
  2. 列表
  3. 字典
  4. 集合

这个结构虽然说是中规中矩由浅入深,但是它并没有让读者做到类比学习触类旁通。

所谓类比

为什么这样说呢?因为这些教程的教学模式,使得读者不容易发现字符串、列表、元组的相同之处。

我们从“读”这个角度来看看这三个数据结构。假设有一个字符串叫做a,有一个列表叫做b,有一个元组叫做c。那么大家请看如下的操作。

按索引读取元素

代码语言:javascript
复制
a[0]  # 字符串第一个字符
b[0]  # 列表第一个元素
c[0]  # 元组第一个元素

a[3]  # 字符串第4个字符
b[3]  # 列表第4个元素
c[3]  # 元组第4个元素

a[-1]  # 字符串最后一个字符
b[-1]  # 列表最后一个元素
c[-1]  # 元组最后一个元素

按索引读取元素这个操作,字符串、列表和元组完全相同。

切片

代码语言:javascript
复制
a[1: 4]  # 读取字符串第2、3、4个字符
b[1: 4]  # 读取列表第2、3、4个元素
c[1: 4]  # 读取元组第2、3、4个元素

a[: 4]  # 读取字符串前4个字符
b[: 4]  # 读取列表前4个元素
c[: 4]  # 读取元组前4个元素

a[-3: ]  # 读取字符串最后3个字符
b[-3: ]  # 读取列表最后3个元素
c[-3: ]  # 读取元组最后3个元素

切片这个操作,字符串、列表和元组完全相同。

循环迭代

代码语言:javascript
复制
for char in a:  # 对字符串进行迭代
    print(char)

for element in b:  # 对列表进行迭代
    print(element)

for element in c:  # 对元组进行迭代
    print(element)

循环迭代这个操作,字符串、列表和元组完全相同。

倒序输出

代码语言:javascript
复制
a[::-1]  # 把字符串倒序 
b[::-1]  # 把列表倒序
c[::-1]  # 把元组倒序

运行效果如下图所示:

倒序输出这个操作,字符串、列表和元组完全相同。

元素是否在里面

代码语言:javascript
复制
if 'x' in a:
    print('字符 x 在字符串中!')

if 3 in b:
    print('元素 3 在列表中!')

if 3 in c:
    print('元素 3 在元组中!')

判断一个字符是否在字符串中,或者判断一个元素是否在列表、元组中,操作完全相同。

查找索引

代码语言:javascript
复制
a = 'hello'
index = a.index('e')
print('字符e 在字符串中的索引为:', index)

b = ['kingname', 'pm', 'ui', 'spider']
index = b.index('pm')
print('元素pm在列表中的索引为:', index)

c = ('kingname', 'pm', 'ui', 'spider')
index = c.index('pm')
print('元素pm在元组中的索引为:', index)

运行效果如下图所示:

查询子字符串在字符串中的索引,或者根据元素查询其在列表、元组中的索引,操作完全相同。

统计出现次数

代码语言:javascript
复制
a = 'helloworld'
num = a.count('l')
print('字符 l 在字符串中出现的次数为:', num)

b = ['kingname', 'pm', 'ui', 'pm', 'spider']
num = b.count('pm')
print('元素 pm 在列表中出现的次数为:', num)

c = ('kingname', 'pm', 'ui', 'pm', 'spider')
num = c.count('pm')
print('元素pm 在元组中出现的次数为:', num)

运行效果如下图所示:

统计出现次数,这个操作对字符串、列表和元组完全相同。

拼接操作

代码语言:javascript
复制
a = 'hello'
b = 'world'
print(a + b)

a = [1, 2, 3]
b = [4, 5, 6]
print(a + b)

a = (1, 2, 3)
b = (4, 5, 6)
print(a + b)

运行效果如下图所示:

加号拼接这个操作,字符串、列表和元组完全相同。

总结

在“读”这个操作上面,字符串、列表、元组是完全相同的,只要掌握了其中一个,另外两个自动就知道怎么操作了。这就叫做类比。

先学习了相同的操作,再来分别学习每个数据结构各自独特的操作,这样才能做到事半功倍,举一反三。

令人遗憾的是,目前市面上绝大部分的 Python 教程,都没有做到这一点。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 未闻Code 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 所谓类比
    • 按索引读取元素
      • 切片
        • 循环迭代
          • 倒序输出
            • 元素是否在里面
              • 查找索引
                • 统计出现次数
                  • 拼接操作
                  • 总结
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档