在Python中将列表与int进行比较

在Python中将列表与int进行比较,python,python-2.7,Python,Python 2.7,令我惊讶的是,我注意到 a = [1,2,3] a > 8 Out[8]: True a = [1,2,3,4,5,6,7,8,9,10,11,12] a>8 Out[10]: True []>8 Out[11]: True 为什么会这样?这个行动到底在做什么?我还尝试了任意大的字符串列表,它们都是真的。我不确定答案,但我认为可能是大小(这个对象占用了多少内存)的比较 试试这个: import sys sys.getsizeof([]) > 72 a = [1,2

令我惊讶的是,我注意到

a = [1,2,3]
a > 8
Out[8]: 
True
a = [1,2,3,4,5,6,7,8,9,10,11,12]
a>8
Out[10]: 
True
[]>8
Out[11]: 
True

为什么会这样?这个行动到底在做什么?我还尝试了任意大的字符串列表,它们都是真的。

我不确定答案,但我认为可能是大小(这个对象占用了多少内存)的比较

试试这个:

import sys
sys.getsizeof([])
> 72
a = [1,2,3]
sys.getsizeof(a)
> 96
如果你想做这样的列表比较,你应该或多或少这样做:

a = [1, 2, 3]
sum(a) > 8
> False

可以认为Python 2按字母顺序比较名称:

print(list>int)  # True
print(set>list)  # True
print(float<int) # True
在Python3中,您可以得到

TypeError:“>”在以下实例之间不受支持。。。而且



否-非尺寸:
适用于范围内的i(12000,10):打印(i,a>i)
所有真实的人都认为这是故意的-如果比较没有意义,则订购旨在按类型区分项目。鸭子今天不是我的朋友,所以我又没找到它。
print(dict<list) # False 
k = [ 1, "a", 'c', 2.4, {1:3}, "hallo", [1,2,3], [], 4.92, {}]  # wild mix of types
k.sort()  # [1, 2.4, 4.92, {}, {1: 3}, [], [1, 2, 3], 'a', 'c', 'hallo'] type-sorted