[英]How to sort only positive numbers from a list?
當用戶在該列表中給出正整數和負整數時,我試圖制作一個僅排序的正列表的列表。 例如,如果用戶給出“10 -7 4 39 -6 12 2”,我的程序只會對正數進行排序並給出“2 4 10 12 39”。 到目前為止,這就是我的代碼的樣子:
list = input().split()
positive_list = []
for i in range(list):
if list[i] > 0:
positive_list.append(list[i])
i+=1
positive_list.sort()
print(positive_list)
你有幾個問題:
list
)命名相同的變量,它會隱藏類型; 取個好聽的名字for i in range(my_list):
不符合你的想法; 你可以for i in range(len(my_list)):
,但你也可以只for n in my_list:
並且n
將依次是my_list
中的每個元素int()
for i..
而且i += 1
你不需要自己增加 for 循環變量。 查看列表推導,它們非常適合您以更復雜的方式嘗試執行的操作,以構建positive_list
。
您的解決方案可能很簡單:
print(sorted([int(x) for x in input().split() if int(x) > 0]))
但更接近你正在嘗試的東西:
numbers = [int(x) for x in input().split()]
sorted_positive_numbers = sorted([x for x in numbers if x > 0])
print(sorted_positive_numbers)
如果您堅持使用for
循環而不是列表推導:
numbers = [int(x) for x in input().split()]
positive_numbers = []
for number in numbers:
if number > 0:
positive_numbers.append(number)
print(sorted(positive_numbers))
將list
重命名為其他內容。 list
是一個 python 關鍵字。 例如list_new
或list_temp
我的建議是這樣嘗試:
positive_list = []
for num in listNew:
if num > 0:
positive_list.append(num)
positive_list.sort()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.