对lin命令中给定的任意值进行排序

2024-03-29 05:47:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要能够在命令行中以任何顺序接受任意值(int、float),然后对它们进行排序和打印。我可以很容易地用int或float来完成,但我一直在努力阅读两者。我的参数读数显示为Namespace(floats=[6.5], integers=[5, 10, 8, 4])。我需要把这些数字放在一张单子上,然后按排序打印出来。关于如何处理这个问题的建议?在

我遇到的一个问题是参数必须按一定的顺序排列,int必须是第一个,然后是float,但是我需要能够以任何顺序输入它们。在

举个例子。在

$ sortNum.py 5 9.9 14 1.1
1.1, 5, 9.9, 14

我的代码如下:

^{pr2}$

我得到了这个错误: 索特南.py:错误:参数N:无效的int值:“1.1” 当我试图输入1.1作为第二个参数时。我用以下参数来测试:51.1 10 8 4 6.5 数字值本身并不重要,只是它们可以是任何float或int,需要进行排序。在


Tags: integers命令行py参数排序顺序错误数字
1条回答
网友
1楼 · 发布于 2024-03-29 05:47:53

在python中,由于sys,您可以访问参数。就这么做吧:

import sys
print sys.argv 

它应该以正确的顺序显示所有的参数,事实上,您将在argv列表中有一个文件名,这是错误的!在

所以你可以把它移走多亏了

^{pr2}$

它将复制到没有第一个元素的副本。在

然后您可以根据以下代码对元素进行排序:

print sorted(numbers, key=lambda x: float(x))

它所做的是对元素进行排序,但是它不会考虑元素本身,而是根据它们的浮动铸造值进行排序。在

你的脚本可以这样写:

import sys

print sys.argv
numbers = sys.argv[1:]
print sorted(numbers, key=lambda x: float(x))

我们到了,希望对你有帮助!在

相关问题 更多 >