虽然我对bash有很多经验,但我对python还是比较陌生的。我有一个由一列数字组成的文件,我想找出列表中最大的数字。我尝试使用以下代码执行此操作:
i = 0
with open('jan14.nSets.txt','r') as data:
for num in data:
if num > i:
i = num
print(i)
1月14日。nSets.txt文件具体如下:
12
80
46
51
0
64
37
9
270
23
132
133
16
6
18
23
32
75
2
9
6
74
44
41
56
17
9
4
8
5
3
27
1
3
42
23
58
118
100
185
85
63
220
38
163
27
198
我收到的不是270,而是9作为输出,我不明白为什么会这样。我知道这是有内置的,但我想知道为什么这不能帮助我理解语言。我用的是python2.7
num
是字符串,不是数字。首先使用^{您正在比较文本,因此它是按词典排序的,
'9' > '80'
,因为ASCII字符'9'
的码点高于'8'
:在
'9'
行之后,所有其他行的初始数字要么小于'9'
,要么该行相等。你知道吗如果首先使用^{} 将所有行转换为整数,则可以使用^{} function :
或者使用generator expression(在python2中,内存效率比
map()
高):两者都从
data
中提取所有行,将这些行映射到整数,并从中确定最大值。你知道吗相关问题 更多 >
编程相关推荐