python equivalent to perl's qw()

前端 未结 3 615
清酒与你
清酒与你 2021-01-03 20:20

I do this a lot in Perl:

printf \"%8s %8s %8s\\n\", qw(date price ret);

However, the best I can come up with in Python is

p         


        
3条回答
  •  情书的邮戳
    2021-01-03 20:42

    Well, there's definitely no way to do exactly what you can do in Perl, because Python will complain about undefined variable names and a syntax error (missing comma, perhaps). But I would write it like this (in Python 2.X):

    print '%8s %8s %8s' % ('date', 'price', 'ret')
    

    If you're really attached to Perl's syntax, I guess you could define a function qw like this:

    def qw(s):
        return tuple(s.split())
    

    and then you could write

    print '%8s %8s %8s' % qw('date price ret')
    

    which is basically Perl-like except for the one pair of quotes on the argument to qw. But I'd hesitate to recommend that. At least, don't do it only because you miss Perl - it only enables your denial that you're working in a new programming language now ;-) It's like the old story about Pascal programmers who switch to C and create macros

    #define BEGIN {
    #define END   }
    

提交回复
热议问题