1

我有一个这样的列表:

la = [3, 7, 8, 9, 50, 100]

我正在尝试将列表转换为字符串并添加如下百分比:

3%, 7%, 8% and lastly 100%

我这样做:

str1 = '%, '.join(str(e) for e in sorted_list) 

它做了正确的事情,除了最后没有百分比,即只有 100,但我想要 100%。我怎样才能做到这一点?谢谢

4

5 回答 5

5
', '.join('%d%%' % (x,) for x in la)
于 2012-12-18T04:21:18.147 回答
2

是的,它正在做它应该做的事情:在每个元素之间放置'%, '。简单点怎么样...

str1 = '%, '.join(str(e) for e in sorted_list) + '%'

(如果sorted_list可以为空,您应该处理这种情况)

于 2012-12-18T04:26:41.113 回答
1

你这个:

print map(lambda n: str(n) + '%', [3, 7, 8, 9, 50, 100])

它创建了一个列表,其中所有这些都转换为带有百分比的字符串。

如果你仍然想要一个字符串,你可以像这样稍微修改它:

str1 = ', '.join(map(lambda n: str(n) + '%', [3, 7, 8, 9, 50, 100]))
于 2012-12-18T04:19:49.657 回答
1
la = [3, 7, 8, 9, 50, 100]
(lambda k: ' and lastly '.join([', '.join(k[:-1]), k[-1]]))(["%s%%" % a for a in la])
# '3%, 7%, 8%, 9%, 50% and lastly 100%'

编辑:小下标错误(再一次,正如 Rohit Jain 所说......:D)

于 2012-12-18T04:24:53.140 回答
0
python 3.2
str1 = ','.join(str(e)+"%" for e in sorted_list)
于 2012-12-18T16:49:04.710 回答