【发布时间】:2020-12-15 13:38:29
【问题描述】:
如果给定两个与数组匹配问题对齐的数组,则组合这些数组,然后按大小顺序重新输出它们。我带来了一个 sys 而不是 input 来获得一个整数输入。结果是 11 不是最后一个,而是下一个。为什么会这样?
输入:
5 4
2 3 6 7 8
1 8 9 11
想要的结果:
1 2 3 6 7 8 8 9 11
代码:
import sys
a,b = input().split()
a = int(a)
b = int(b)
li1 = sys.stdin.readline().split()
li2 = sys.stdin.readline().split()
li = li1+li2
li.sort()
for i in range(a+b):
print(li[i], end=" ")
当前结果:
1 11 2 3 6 7 8 8 9
【问题讨论】:
-
您有字符串列表
"1" "11" "2" "3" "6" "7" "8" "8" "9",而不是数字1 11 2 3 6 7 8 8 9- 当您对字符串进行排序时,"11"低于"2",因为它比较第一个字符"1"(在“11 ") 与第一个字符"2". You have to convert all elements on list toint()` -
您的输入数组看起来像是全部显示在一行中。您可以将其放在代码块中,以更清楚地了解实际传递了哪些行。此外,一般不建议将
sys.stdin.readline和input混合使用。
标签: python