首页 > 编程学习 > Python中的序列比较

Python中的序列比较

发布时间:2022/10/1 4:25:26

在Python中,具有相同数据类型的序列可以通过关系运算符进行比较。对序列进行比较大小,实际上就是对序列中的数据以“在字典中的顺序”(lexicographical ordering)进行比较,也就是出现在一本字典前面的数据要比后面的数据小。

1 比较的方法

1.1 当两个序列长度相同时

对于比较两个长度相同的序列,先按照字典顺序,比较这两个序列的第一个数据值,如果能够比较出大小,则该结果即为这两个序列的大小结果;如果第一个数值相等,则继续比较第二个数值,以此类推,直到比较序列中的所有元素都比完,如果所有的元素都相等,则这两个序列相等。

>>> a = [1, 2, 3, 4]

>>> b = [1, 2, 5, 6]

>>> c = [1, 2, 3, 4]

>>> a < b

True

>>> a == c

True

按照之前提到的比较规则,列表a小于列表b;列表a与列表c相等。

1.2 当两个序列长度不同时

对于比较两个长度不同的序列时,首先按照“1.1 当两个序列长度相同时”中提到的方法进行比较,如果在较短序列的元素都比较完之后依然没有分出大小,则此时较长序列大于较短序列。

>>> a = [1, 2]

>>> b = [1, 2, 3]

>>> a < b

True

此时,列表b的长度大于列表a的长度,在a中所有元素都比较完之后依然没有分出大小,则b大于a。

2 含有不同类型数据序列的比较

2.1 所含的数据类型可以比较时

在前面提到,含有相同类型数据的序列可以进行比较,当两个序列含有不同数据类型时,只要不同的数据类型之间可以进行关系运算符的操作,则也可以对这两个序列进行比较。

>>> a = [1, 2, 3]

>>> b = [1.0, 2.0, 3.0]

>>> a == b

True

其中,列表a中的数据类型是整型,而列表b中的数据类型是浮点型,因为整型和浮点型可以使用关系运算符进行比较,因此,列表a和列表b之间也可以使用关系运算符进行比较。

2.2 所含的数据类型不能比较时

如果两个序列所含的数据类型不能比较时,比较这两个序列的代码会报错。

>>> a = [1, 2, 3]

>>> b = ['a', 'b', 'c']

>>> a > b
Traceback (most recent call last):

  File "<pyshell#27>", line 1, in <module>

    a > b

TypeError: '>' not supported between instances of 'int' and 'str'

此时的报错信息为“类型错误:整型和字符串之间不支持‘>’的操作”。

Copyright © 2010-2022 mfbz.cn 版权所有 |关于我们| 联系方式|豫ICP备15888888号