换行在Python中使用list元素

时间:2012-11-19 08:50:05

标签: python django list

如何在Django模板中使用换行符显示列表中的所有元素? 例如,带有一个列表 ls = ['bin', 'boot', 'data', 'data2']我想以

格式显示元素
bin
boot
data
data2

我试过了:

'\n'.join(ls)

这会返回每个单词的空格:

b i n b o o t d a t a d a t a 2

我的views.py中的相关代码:

   result1 = subprocess.Popen(['ls', '/home/zurelsoft/R'], stdout=subprocess.PIPE).communicate()[0]
        result = ''.join(result1)
        return render_to_response('thanks.html', {'res':result, 'res1':command}, context_instance=RequestContext(request))

模板的相应部分:

<td>{{ res }} </td>

7 个答案:

答案 0 :(得分:3)

您可以使用newline (\n)加入: -

'\n'.join(ls);  // This will only work for list of strings.

或只是使用for loop迭代您的列表,并打印每个元素: -

for elem in ls: 
    print elem

答案 1 :(得分:3)

修改视图以使用splitlines()函数将输出拆分为行列表:

def myview(request):
    result = subprocess.Popen(['ls', '/home/zurelsoft/R'], stdout=subprocess.PIPE).communicate()[0].splitlines()
    return render_to_response('thanks.html', {'res':result, 'res1':command}, context_instance=RequestContext(request))

然后使用模板中的join过滤器将列表中的每个元素与HTML换行标记<br />分开:

<td>{{ res|join:"<br/>" }}</td>

答案 2 :(得分:2)

'\n'.join(ls)

"\n"是一个特殊字符,意思是“换行符”。

答案 3 :(得分:2)

如果res是一个列表,那么你可以遍历列表并输出自己标记中的每个元素。

{% for r in res %}
  <td>{{ r }}</td>
{% endfor %}

答案 4 :(得分:0)

>>> out=reduce(lambda x, y: x+y+'\n', ls, "" )
>>> print out
a
b
c
d
e

join调用reduce来累积结果。

答案 5 :(得分:0)

尝试:

'\n'.join(ls)

它给出了一个列表,其中的元素用“下一行”分隔。在你的第一个例子中你试过''这是一个空的标志。

答案 6 :(得分:0)

for i in ls:
    print "%s"%i

这将为您提供所需的输出。