Format string with all elements of a list

前端 未结 3 404
南旧
南旧 2021-01-23 02:50
words = [\'John\', \'nice\', \'skateboarding\']
statement = \"%s you are so %s at %s\" % w for w in words

produces

File \"

        
3条回答
  •  清酒与你
    2021-01-23 03:10

    You could also use the new .format style string formatting with the "splat" operator:

    >>> words = ['John', 'nice', 'skateboarding']
    >>> statement = "{0} you are so {1} at {2}".format(*words)
    >>> print (statement)
    John you are so nice at skateboarding
    

    This works even if you pass a generator:

    >>> statement = "{0} you are so {1} at {2}".format(*(x for x in words))
    >>> print (statement)
    John you are so nice at skateboarding
    

    Although, in this case there is no need to pass a generator when you can pass words directly.

    One final form which I think is pretty nifty is:

    >>> statement = "{0[0]} you are so {0[1]} at {0[2]}".format(words)
    >>> print statement
    John you are so nice at skateboarding
    

提交回复
热议问题