''。join(list)非常棒。但是,我注意到我通常不得不在开头和结尾添加其他字符。我已经通过几种方式完成了这项工作,但感觉有一种我无法想到的更易读的方式。
有优雅的处理方式吗?我只是过度思考这个吗?
例如:
["column1", "column2", "column3"]
期望的输出:
| column1 | column2 | column3 |
没有开始和结束的代码(简明扼要!)
print ' | '.join(mylist)
头部和尾部:
print ' | ' + ' | '.join(mylist) + ' | '
print ' | ', ' | '.join(mylist), ' | '
print " | {} | ".format(' | '.join(mylist))
print ' | '.join([''] + mylist + ['']) (ugh)
答案 0 :(得分:3)
我认为第三种选择是你可以得到的壁橱:
print " | {} | ".format(' | '.join(list))
答案 1 :(得分:3)
我没有看到比你已经找到的方法更好的方法。这是我的偏好,修复了在开头和结尾引入额外空格的错误:
print ' |' + ' | '.join(list) + '| '
是什么让你对此感到不舒服?它的可读性吗?在不同的地方生成相同的字符串时必须重复自己?如果是这样,那么这两个问题的答案就是将这一行打包成一个函数,并让调用者使用它。
答案 2 :(得分:0)
另一种选择:
" | " + "".join(x + " | " for x in lst)
我认为没有一种“好”的方法可以做到这一点。如果你需要这么多,写一个函数来做你需要的。
答案 3 :(得分:0)
如果你想要一行:
print "| %s |" % (' | '.join(list))
但可能会过度思考它。
答案 4 :(得分:0)
在列表的开头和结尾添加额外的空字符串可能允许您加入而不“重复自己” - 您仍然可以通过更改一个字符来更改分隔符。
" | ".join([""] + lst + [""])
或者,如果lst
很大,请避免制作临时列表:
from itertools import chain
" | ".join(chain([""], lst, [""])