这是我的代码
def max_array_diff(line):
return max(line)
line = raw_input().split()
print max_array_diff(line)
print line
这是我得到的输出
9
['1', '9', '2', '-7', '10', '4', '3']
我需要输出为10。raw_input()作为字符串输入,我已将其转换为列表,并试图从中获取最大值,但它始终返回9而不是10。我是什么?做错了吗?
答案 0 :(得分:6)
您应该在拆分输入后将输入转换为整数;否则,您将使用max()
做字符串比较。
更改:
line = raw_input().split()
收件人:
line = map(int, raw_input().split())
或者,您可以将int
指定为key
的{{1}}函数,以便根据字符串输入的整数值进行比较。
更改:
max()
收件人:
return max(line)
答案 1 :(得分:2)
您需要执行整数比较而不是字符串比较:
return max(line, key=int)
答案 2 :(得分:1)
或者另一种方法是做
type StringParseResult =
[string]
| { key: string, value: any }
const parseStr = (str: string): StringParseResult => {
if (str.indexOf('/') === -1) {
return [str];
}
const [key, ...rest] = str.split('/');
return {key, value: parseStringArray([rest.join('/')]) }
}
const parseStringArray = (arr: string[]): any => {
const result: any = {};
for (const str of arr) {
const partial = parseStr(str);
if ('key' in partial) {
result[partial.key] = partial.value;
}
else {
return partial;
}
}
return result;
}
console.log(
parseStringArray(["CBSE/X", "HOS/A/A1", "FOOD/S"])
);
要获得最高的成就:
print(sorted(raw_input().split(),key=int))
要获得前3名:
print(sorted(raw_input().split(),key=int)[0])