【发布时间】:2016-06-17 07:12:01
【问题描述】:
有人建议我使用以下解决方案,但我不理解以下代码的这一行 cmd += "("+ ",".join(args) +")"。
我为此感到沮丧。有人可以帮助我吗
问题是读取这样的输入
12
insert 0 5
insert 1 10
insert 0 6
print
remove 6
append 9
append 1
sort
print
pop
reverse
print
我对 Python 语言的尝试
n = input()
l = []
for _ in range(n):
s = raw_input().split()
cmd = s[0]
args = s[1:]
if cmd !="print":
cmd += "("+ ",".join(args) +")"
eval("l."+cmd)
else:
print l
【问题讨论】:
-
你自己明白
",".join(args)吗...? -
你想归档什么?
-
不,我不明白 .deceze
-
Rahul 我只是想了解这一行 cmd += "("+ ",".join(args) +")"
-
eval()是一个糟糕的解决方案。见stackoverflow.com/questions/1832940/…。例如,在这种特殊情况下,您可以使用getattr(l, cmd)(*(int(arg) for arg in args))。即使是不受控制的 getattr 也可能是邪恶的。
标签: python