python内置数据类型使用方法和继承关系

 更新时间:2022年03月10日 09:34:02   作者:机器学习入坑者  
这篇文章主要介绍了python内置数据类型使用方法和继承关系,介绍内容有python包含的内置序列、使用内置的数据类型等相关资料,需要的小伙伴可以参考一下

前言:

python之父Guido van Rossum曾经参与过ABC语言的开发(不是参加了A语言、B语言和C语言的开发,ABC是一门单独的编程语言),后来他认为这门语言存在很多缺点,就创立了python语言。因此,python很多风格和ABC语言是有相似之处的。

今天笔记内容是流畅的python书籍的第二章,主要记录python内置序列类型的相关知识

本文重点就是分析数据类型的“继承关系”,也就是本文的标题上方的图片。

1、python包含的内置序列

初学python时有这样的疑惑:为什么书中一开始就讲解list、tuple、str的使用,而大一上C语言和C++课程时,都是先讲解链表的基本知识,讲地址和指针。

使用python的list动态添加和替换元素,甚至都不需要知道链表是如何遍历的,我觉得这就是python的哲学,在python中“import this”,可以看到开发者们提供了这样的一段话:

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
........

基于这样的想法,python提供了非常好用的数据结构:listtuplestr(列表,元组、字符串)等等。

2、使用内置的数据类型

2.1 创建

在python中创建某种数据结构也是非常简单的:创建string使用单引号或者双引号;创建tuple使用园括号;创建list使用方括号:

string_ = "there are"
tuple_ = (1, 2, 3)
list_ = [4, 5, 6]

由于listtuple、string都是用来盛放数据的,所以我下文中统一称为“容器”。此外,也可以使用构造函数来创建它们:

string_ = str("there are")
list_ = list([1, 2, 3])
tuple_ = tuple((4, 5, 6))

2.2 索引

想要获取容器中的某个值,可以采用索引的方式,比如想要获取某个list的最后一个元素:

list_ = [4, 5, 6]
print(list_[2])

输出:6

python中“-1”表示最后容器的最后一个元素:

list_ = [4, 5, 6]
print(list_[-1])

输出:6

tuplestring的索引方式和list是相同的,不同之处在于元素是否可变,将会在下节指出。

2.3 使用for遍历

实现了迭代器协议__iter__()的容器都可以使用for...in...的形式来遍历其中的每一个元素:

tuple_ = (1, 2, 3)
for tu in tuple_:
    print(tu)
# 输出:1 2 3 

liststring同理。

3、可变与不可变

我们知道,list创建以后,可以动态的改变它的某个元素的值:

list_ = [4, 5, 6]
list_[0] = 100
print(list_)
# 输出:[100, 5, 6]

但是,tuple和string一旦被创建以后,就不能改变它元素的值,强制修改会报错:

tuple_ = (1, 2, 3)
tuple_[0] = 2

输出错误:

TypeError: 'tuple' object does not support item assignment

重点来了,python的数据类型不仅仅前面介绍的3种,各种类型之间的相同和差异有哪些呢?

答:python将序列类型(容器)分为可变序列和不可变序列,我们可以通过“继承”关系区分二者功能上的相同点和差异,具体分类如下:

  • (1)可变序列(MutableSequence):list、bytearray、array.array、collections.deque、memoryview
  • (2)不可变序列(Sequence):tuple、str、bytes

下面的图形象的体现了二者的关系(根据书中画的):

可变序列是继承自不可变数据类型的,所以二者的共同点就是不可变类型包含的函数(比如index),区别就是可变序列新增的或者重载的函数(比如pop是可变序列独有的)。

4、小练习题

题目:实现一个函数,用于删除字符串最后的一个字母,可以返回新的字符串。比如给一个单词“here”,函数需要删除“e”,返回“her”。

实现如下:

def delete_last(word):
    new_word = word[0:-1]
    return new_word

测试一下:

word = "here"
new_word = delete_last(word=word)
print(new_word)

输出:her

也可以将str转为list,使用list.pop()删除最后一个字母,最后再转回str类型,但是比较麻烦。

到此这篇关于python内置数据类型使用方法和继承关系的文章就介绍到这了,更多相关python内置数据类型内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python模拟FTP文件服务器的操作方法

    Python模拟FTP文件服务器的操作方法

    这篇文章主要介绍了Python_模拟FTP文件服务器的操作方法,分为服务端和客户端,要求可以有多个客户端同时操作。本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-02-02
  • python使用Berkeley DB数据库实例

    python使用Berkeley DB数据库实例

    这篇文章主要介绍了python使用Berkeley DB数据库的方法,以实例形式讲述了完整的操作过程,并总结了具体的操作步骤,非常具有实用性,需要的朋友可以参考下
    2014-09-09
  • Python 炫技操作之合并字典的七种方法

    Python 炫技操作之合并字典的七种方法

    这篇文章主要介绍了Python 炫技操作之合并字典的七种方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • 使用python turtle画高达

    使用python turtle画高达

    今天小编就为大家分享一篇使用python turtle画高达,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Python copy()与deepcopy()方法之间有什么区别

    Python copy()与deepcopy()方法之间有什么区别

    这篇文章主要介绍了Python中的copy()和deepcopy(),下面详细介绍该内容并附上详细代码,需要的朋友可以参考一下文章的具体内容,希望对你有所帮助
    2022-10-10
  • DRF QuerySet Instance数据库操作功能概述

    DRF QuerySet Instance数据库操作功能概述

    这篇文章主要为大家介绍了DRF QuerySet Instance数据库处理的功能概述,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • Python 中 Shutil 模块详情

    Python 中 Shutil 模块详情

    这篇文章主要介绍了 Python 中 Shutil 模块,shutil可以简单地理解为sh + util,shell工具的意思。shutil模块是对os模块的补充,主要针对文件的拷贝、删除、移动、压缩和解压操作。下面来看文章详细内容
    2021-11-11
  • PyQt5中QTimer定时器的实例代码

    PyQt5中QTimer定时器的实例代码

    如果需要在程序中周期性地进行某项操作,比如检测某种设备的状态,就会用到定时器,本文主要介绍了PyQt5中QTimer定时器的实例代码,感兴趣的可以了解一下
    2021-06-06
  • Python中的字典与成员运算符初步探究

    Python中的字典与成员运算符初步探究

    这篇文章主要介绍了Python中的字典与成员运算符初步探究,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-10-10
  • OpenCV实战之图像拼接的示例代码

    OpenCV实战之图像拼接的示例代码

    图像拼接可以应用到手机中的全景拍摄,也就是将多张图片根据关联信息拼成一张图片。本文将介绍利用Python OpenCV实现图像拼接的方法,感兴趣的可以试一试
    2022-01-01

最新评论