我正在尝试编写一个可以获取列表并将其转换为字符串的函数,其中每个值都用行分隔。
我尝试过使用格式化的字符串乘法
d = ["one", "two", "three"]
dstring = ("{}\n"*(len(d)-1)).format(d)
print(dstring)
我的预期结果是,列表中的每个元素都会生成一组大括号,然后仅使用列表即可对其进行格式化。
所以它将返回
one
two
three
以及该格式的其他任何元素,如果列表变大。
但是它返回
IndexError: tuple index out of range
答案 0 :(得分:1)
使用str.join,它将列表中的项目连接在一起,并在它们之间提供定界符,在我们的情况下为\n
d = ["one", "two", "three"]
res = '\n'.join(d)
print(res)
#one\ntwo\nthree
输出为
one
two
three
或者,如果您希望在每个列表的末尾附加\n
,则可以使用列表理解
d = ["one", "two", "three"]
res = [f'{item}\n' for item in d]
print(res)
输出为
['one\n', 'two\n', 'three\n']
答案 1 :(得分:0)
为此,我将使用简短列表理解:
d = ["one", "two", "three"]
c = [b+"\n" for b in d]
print(c)
这将为您提供所需的输出:
['one\n', 'two\n', 'three\n']
答案 2 :(得分:0)
format
需要n个参数,例如通过使用*
:
dstring = ("{}\n"*len(d)).format(*d)