我在Perl中经常这样做:
printf "%8s %8s %8s\n", qw(date price ret);
但是,我能用Python提出的最好的方法是
print '%8s %8s %8s' % (tuple("date price ret".split()))
我只是想知道是否有更优雅的方法?如果您告诉我就是这样,并且无法进行任何改进,我很好。
最佳答案
好吧,绝对没有办法完全完成您在Perl中可以做的事情,因为Python会提示 undefined variable 名和语法错误(也许缺少逗号)。但我会这样写(在Python 2.X中):
print '%8s %8s %8s' % ('date', 'price', 'ret')
如果您真的很喜欢Perl的语法,我想您可以定义一个函数
qw
,如下所示:def qw(s):
return tuple(s.split())
然后你可以写
print '%8s %8s %8s' % qw('date price ret')
除了
qw
的参数上的一对引号外,它基本上类似于Perl。但我会毫不犹豫地建议。至少不要仅仅因为错过了Perl而这样做-它只会使您否认您现在正在使用一种新的编程语言;-)就像古老的故事一样,Pascal程序员改用C并创建宏#define BEGIN {
#define END }
关于python - 相当于perl的qw()的python,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3534714/