我在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/

10-13 08:40