根据我的代码,将结果输出到.预期输出是 5。我犯了什么错误?

问题描述 投票:0回答:1

我们必须输入一个数组大小,即 n = 5。然后我们根据数组在列表中的索引(例如奇数索引和偶数索引)对数组进行排序。然后我添加倒数第二个元素,它应该得到 7,但我得到了 5。 输入数字为 3 4 1 7 9

我尝试了下面的代码,得到的结果是 5 而不是 7。谁能告诉我这段代码有什么问题吗?

n = []
odd = []
even = []
nsize = 5
for i in range(0, nsize):
    num = int(input("Enter number: "))
    n.append(num)
    if i % 2 == 0:
        even.append(n[i])
    else:
        odd.append(n[i])

print("odd", sorted(odd))
print("even", sorted(even))
print(odd[-2] + even[-2])
python arrays sorting output
1个回答
0
投票

sorted
不会修改
odd
even
列表;相反,它根据给定列表构建一个新的排序列表。要就地排序
odd
even
,请使用
.sort()
。因此,改变

print("odd", sorted(odd))
print("even", sorted(even))

odd.sort()
even.sort()
print("odd", odd)
print("even", even)

它会按预期工作。

© www.soinside.com 2019 - 2024. All rights reserved.