Python-追加和排序列表
我正在编写一个代码,试图从命令行获取argv(I、w或f)。然后使用输入,我想获取整数、浮点或字的列表并执行一些事情Python-追加和排序列表,python,list,sorting,python-3.x,Python,List,Sorting,Python 3.x,我正在编写一个代码,试图从命令行获取argv(I、w或f)。然后使用输入,我想获取整数、浮点或字的列表并执行一些事情 用户将在命令行中输入“f”,然后输入浮点列表,其中的值将附加到空列表中。然后程序将对浮点列表进行排序并打印输出结果 我想对字和整数进行类似的处理 如果输入是单词列表,则输出将按字母顺序打印单词。如果输入是整数列表,则输出将是按相反顺序排列的列表 这是到目前为止我所拥有的代码,但到目前为止,一些输入值只是将这些值附加到空列表中。我遗漏了什么阻止代码正确执行 例如,程序将首先添加程序
$ test.py w
>>> abc ABC def DEF
[ABC, DEF,abc,def] # list by length, alphabetizing words
代码
试试这个:
import sys
option, values = sys.argv[1], sys.argv[2:]
tmp = {
'i': lambda v: map(int, v),
'w': lambda v: map(str, v),
'f': lambda v: map(float, v)
}
print(sorted(tmp[option](values)))
输出:
shell$ python my.py f 1.0 2.0 -1.0
[-1.0, 1.0, 2.0]
shell$
shell$ python my.py w aa bb cc
['aa', 'bb', 'cc']
shell$
shell$ python my.py i 10 20 30
[10, 20, 30]
shell$
您必须添加必要的错误处理。例如
>>> float('aa')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: could not convert string to float: aa
>>>
浮动('aa')
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ValueError:无法将字符串转换为浮点值:aa
>>>
非常感谢您!这很有效。你使用字典是最好的选择!
>>> float('aa')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: could not convert string to float: aa
>>>