最近又把python抓起来学一下,还是看的b站上面小甲鱼的视频,刚看到列表之间的大小比较部分,有了疑惑,python列表之间是怎么比较大小的?百度了一下没看到有人说清楚,于是准备自己推一下:
list1 = [1, 2, 3]
list2 = [1, 2, 3]
print(list1 == list2)
#在pycharm里面结果为True
#同时list1 < list2 和 list1 > list2 都是False
- 1
- 2
- 3
- 4
- 5
说明至少在pycharm里面两个列表元素相同,那列表大小就相同。
list1 = [1, 2 ,3]
list2 = [2, 2, 3]
print(list1 < list2)
#结果为True
#同样[1, 2, 3] < [1, 3, 3] [1, 2, 3] < [1, 2, 4]
- 1
- 2
- 3
- 4
- 5
说明如果两列表从第0个位置的数开始比较,如果相同,则会一直向后比较直到遍历完整个列表。那么如果两个列表长度不一样呢?
list1 = [1, 2, 3]
list2 = [1, 2, 3, 4]
print(list1 < list2)
#结果为True
#同样[1, 2, 3] < [1, 2, 3, -1]
- 1
- 2
- 3
- 4
- 5
所以前面元素相同时,长度更长的那个列表大。
我们知道,列表里面的元素包罗万象,那么字符串类型的数字可不可以比较大小呢?
list1 = ['1', 2, 3]
list2 = [1, 2, 3]
print(list1 < list2)
#运行会报错 int 和 str类型不能直接比较
list1 = ['1', 2, 3]
list2 = ['2', 2, 3]
print(list1 < list2)
#结果为True
#同样['1', 2, 3] > ['-1', 2, 3]
list1 = ['1', 2, 3]
list2 = ['a', 2, 3]
print(list1 < list2)
#结果为True
#另外,list2中的'a'换成'汉字'甚至'[1, 2]'也是一样的,而如果换成'-a',结果就为False
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
如果是
list1 = ['a', 2, 3]
list2 = ['[1, 2]', 2, 3]
print(list1 < list2)
#结果为False,这是怎么比较的我就不清楚了
- 1
- 2
- 3
- 4
以上纯属闲的