我有一个这样的列表:
la = [3, 7, 8, 9, 50, 100]
我正在尝试将列表转换为字符串并添加如下百分比:
3%, 7%, 8% and lastly 100%
我这样做:
str1 = '%, '.join(str(e) for e in sorted_list)
它做了正确的事情,除了最后没有百分比,即只有 100,但我想要 100%。我怎样才能做到这一点?谢谢
', '.join('%d%%' % (x,) for x in la)
是的,它正在做它应该做的事情:在每个元素之间放置'%, '。简单点怎么样...
str1 = '%, '.join(str(e) for e in sorted_list) + '%'
(如果sorted_list
可以为空,您应该处理这种情况)
你这个:
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]))
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)
python 3.2
str1 = ','.join(str(e)+"%" for e in sorted_list)