传递要在Python字符串中格式化的项目数

时间:2014-10-14 09:43:11

标签: python regex python-2.7 string-formatting

我有一个使用List元素的字符串。

alist = ['a', 'b', 'c', 'd', 'e']
s = "my amazing string %s" % ('-'.join(alist))

这将返回my amazing string a-b-c-d-e"

现在我想要的是传递一个数字,它可以告诉我你应该只加入这么多元素。

例如〜如果我想只加入前3个元素

那么类似的东西

s = "my amazing string %<3>s" % ('-'.join(alist))

并输出 "my amazing string a-b-c"

我从其他地方来的主要字符串("my amazing string %s")。我有这个清单。

还有其他方法,例如使用.format()

PS:我再也不能使用list slice alist [:3],因为我不知道这个数字。

s = "my amazing string %<3>s" % ('-'.join(alist[:3]))

此数字将位于需要由此列表填充的主字符串中。只有这个字符串应包含这个信息,表明我们需要从这个列表中找到多少项

1 个答案:

答案 0 :(得分:3)

使用切片

print '-'.join(alist[:3])

使用正则表达式

>>> alist = ['a', 'b', 'c', 'd', 'e']
>>> import re
>>> s = "my amazing string %<3>s"
>>> times = int(re.search(r'%<(\d+)>s', s).group(1))
>>> re.sub(r'(?<=\%)<\d+>(?=s)', '', s) % '-'.join(alist[:times])
'my amazing string a-b-c'