为了账号安全,请及时绑定邮箱和手机立即绑定

使用大于或小于运算符比较两个列表

使用大于或小于运算符比较两个列表

喵喔喔 2019-11-19 10:38:44
我注意到最近有一段代码直接比较两个整数列表,如下所示:a = [10,3,5, ...]b = [5,4,3, ...,]if a > b:     ...这似乎有些奇怪,但我想True如果所有list_a元素都大于,则返回;list_b如果每个元素相等或list_b元素大于,则返回False list_a。所以我测试了它:>>> a=[3,3,3,3]>>> b=[4,4,4,4]>>> a>bFalse>>> b>aTrue好的,行得通。和:>>> b = [1,1,1,1]>>> a = [1,1,1,1]>>> a>bFalse>>> b>aFalse但是当它变得更加模糊时:>>> a=[1,1,3,1]>>> b=[1,3,1,1]>>> a>bFalse>>> b>aTrue要么:>>> a=[1,3,1,1]>>> b=[1,1,3,3]>>> a>bTrue>>> b>aFalse结果有点陌生。python实际在做什么?看来它返回的结果偏向于第一个列表,其中最左边的元素大于相应的元素?
查看完整描述

2 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

从比较序列和其它类型在Python教程:


比较使用字典顺序:首先比较前两个项目,如果它们不同,则确定比较的结果;如果它们相等,则比较下两个项目,依此类推,直到用尽任何一个序列。


另请参阅Wikipedia有关词典顺序的文章。


查看完整回答
反对 回复 2019-11-19
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

由于我首先没有发现使用“词典顺序”对列表/元组比较的解释,因此首先尝试用“我自己的话”对其进行解释。首先,这是下面的说明中引用的一些示例列表:


a = [1, 2, 3]

b = [1, 2, 10]

c = [1, 2, 3, 100]

d = [1, 2, 3]

e = [1, 2, 3, 4, 'a']

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

依次比较每个索引处的项目对。因此,比较a于b将导致1被比较1,2被比较2和3被比较10。


当对比较将停止或者不相等的一对物品的被发现或 --IF列表具有不同的长度-在达到短列表的末尾。


例如,当比较a和b,比较会当停止3,并10进行比较。比较b和时c,比较将在10和停止3。


一旦发现不相等的对,总体结果就是比较不相等项的结果。无论列表的长度是否相等,这都适用-例如,列表b大于列表,c因为100in c永远不会起作用。


例如,在比较时a要b,总的结果将是比较结果3来10。a < b -> True因为3小于10。a > b -> False因为3不大于10。a == b -> False因为3不相等10。


如果一个列表较短,并且它的N个项目等于较长列表的前N个项目(如a和)c,则较短的列表将被视为小于较长的列表(因此a小于c)。


两个列表只有在长度相同且所有项目对都相等时才比较相等。


关于类型的注意事项:如果一对中的项目不可比,则比较将失败,并且TypeError像往常一样。例如,比较列表a到f时将无法1进行比较'a'。但也要注意,由于in 从未与in中的任何内容进行比较d,因此e可以进行比较。'a'ed


查看完整回答
反对 回复 2019-11-19
  • 2 回答
  • 0 关注
  • 729 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号