m=int(input()) nums=input().split() n=list(set(nums)) n.sort() l=len(n) print(l) print(' '.join(str(num) for num in n))这串代码在无法正常排序,有什么问题
时间: 2023-11-18 20:06:40 浏览: 67
根据你的提问,这段代码的问题可能是无法正常排序。这可能是因为输入的数字字符串列表 `nums` 没有转换为整数类型,导致在比较时出现问题。可以尝试在 for 循环中添加一个 int() 转换,如下所示:
```
m = int(input())
nums = input().split()
n = list(set(int(num) for num in nums))
n.sort()
l = len(n)
print(l)
print(' '.join(str(num) for num in n))
```
这样就可以把输入的字符串列表转换为整数类型,从而正确排序并输出结果。
相关问题
用户输入两个正整数m和n,其中m做为随机数种子。随机产生n个0-9之间的整数,以字符形式加入列表。先输出列表在输出去重复元素后按升序排列的列表
下面是Python代码实现:
```python
import random
m, n = map(int, input("请输入随机数种子m和随机数个数n(用空格隔开):").split())
random.seed(m)
nums = []
for i in range(n):
nums.append(str(random.randint(0, 9)))
print("随机数列表:", nums)
nums_set = list(set(nums))
nums_set.sort()
print("去重排序后的列表:", nums_set)
```
运行示例:
```
请输入随机数种子m和随机数个数n(用空格隔开): 8 10
随机数列表: ['4', '1', '9', '6', '6', '7', '9', '0', '6', '3']
去重排序后的列表: ['0', '1', '3', '4', '6', '7', '9']
```
利用Python编写程序:现有n个正整数,0 < n ≤ 1000,要求出这n个正整数中的第k个最小整数(相同大小的整数只计算一次),0 < k ≤ 100,正整数均不大于30000。 输入 第一行为n和k; 第二行开始为n个正整数的值,整数间用空格隔开。 输出 第k个最小整数的值;若无解,则输出“NO RESULT”。
以下是利用Python编写的程序,可以解决这个问题:
```python
n, k = map(int, input().split())
nums = list(set(map(int, input().split())))
nums.sort()
if k > len(nums):
print("NO RESULT")
else:
print(nums[k-1])
```
这个程序首先读取输入的n和k,然后读取n个正整数并去重排序。如果k超过了去重后的正整数个数,则输出"NO RESULT";否则输出第k个最小整数的值。
阅读全文