Python中的序列比较

在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'

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

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值