Python 如何从列表中只排序正数?
当用户在列表中给出正整数和负整数时,我试图创建一个只包含已排序正整数的列表。例如,如果用户给出“10-7439-6122”,我的程序只会对正数排序并给出“24101239”。 到目前为止,我的代码是这样的:Python 如何从列表中只排序正数?,python,list,sorting,Python,List,Sorting,当用户在列表中给出正整数和负整数时,我试图创建一个只包含已排序正整数的列表。例如,如果用户给出“10-7439-6122”,我的程序只会对正数排序并给出“24101239”。 到目前为止,我的代码是这样的: list = input().split() positive_list = [] for i in range(list): if list[i] > 0: positive_list.append(list[i]) i+=1 positi
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
重命名为其他名称<代码>列表是一个python关键字。
例如list\u new
或list\u temp
我的建议是这样尝试:
positive_list=[]
对于listNew中的num:
如果num>0:
肯定列表。追加(num)
肯定列表。排序()
您有几个问题:
- 您有一个名为与基本类型相同的变量(
),该变量会隐藏该类型;选择一个更好的名字list
不会做你想做的事;您可以对范围内的i(len(my_list))执行对于范围内的i(我的列表):
,但您也可以对my_list中的n执行:
,而:
将依次成为n
中的每个元素my_list
- 用户输入文本时,需要先将这些字符串转换为整数,然后再使用
int()
- 您可以
但是for i..
您不需要自己增加for循环变量i+=1
积极列表
您的解决方案可以简单到:
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))
你的东西怎么了?你的问题是什么?那很有帮助。谢谢,不客气-如果你不再需要答案,请使用复选标记接受答案,这样其他人就可以找到解决方案,人们就不会再看问题来回答了。是的,这是我的疏忽。谢谢你的帮助