Python 取决于字段值的字符串数
我有一个带整型字段的表单,看起来像:Python 取决于字段值的字符串数,python,django,Python,Django,我有一个带整型字段的表单,看起来像: items = forms.IntegerField(min_value=1) 根据此字段的值,应创建相同数量的此字符串: item = '<Item></Item>' 但我只有一个项字符串 context = Context({'item':item }) 我在python shell中尝试了相同的操作,一切正常: >>> items = 4 >>> for item in range(it
items = forms.IntegerField(min_value=1)
根据此字段的值,应创建相同数量的此字符串:
item = '<Item></Item>'
但我只有一个项字符串
context = Context({'item':item })
我在python shell中尝试了相同的操作,一切正常:
>>> items = 4
>>> for item in range(items):
... item = "item"
... print item
...
item
item
item
item
如果您能帮助我理解为什么会发生这种情况,我将不胜感激。您似乎只是多次将字符串赋给变量,而不是附加到它。尝试以下方法:
context = Context({'item': ''.join('<Item></Item>' for i in range(items)) })
context=context({'item':''.join(''表示范围(items))中的i)
这里有一种更具可读性的方式:
items = []
for item in range(items):
items.append('<Item></Item>')
context = Context({'item': ''.join(items) })
items=[]
对于范围内的项目(项目):
项目。附加(“”)
context=context({'item':''.join(items)})
您似乎只是多次将字符串赋给变量,而不是附加到变量上。尝试以下方法:
context = Context({'item': ''.join('<Item></Item>' for i in range(items)) })
context=context({'item':''.join(''表示范围(items))中的i)
这里有一种更具可读性的方式:
items = []
for item in range(items):
items.append('<Item></Item>')
context = Context({'item': ''.join(items) })
items=[]
对于范围内的项目(项目):
项目。附加(“”)
context=context({'item':''.join(items)})
项目=“”
对于范围内的i(项目):
项目+=“”
项目=“”
对于范围内的i(项目):
项目+=“”
打印项目的输出是什么?也不要重写中间变量。每次都重写for循环中的项。您应该将它附加到一个列表中,例如context\u items。附加(item)
或连接字符串,例如item+='
打印项的输出是什么?也不要重写中间变量。每次都重写for循环中的项。您应该将其附加到列表中,例如context\u items.append(item)
或连接字符串,例如item+=''
值得注意的是,您的两个代码段产生不同的输出,一个是字符串,另一个是字符串array@Sayse,接得好,谢谢!我已经编辑了答案,所以现在两种方法都应该产生相同的输出。我不是说任何方法都是错误的,数组可能是一件好事(很难说op想要什么)。。。值得注意的是,您的两个代码段产生不同的输出,一个是字符串,另一个是字符串array@Sayse,接得好,谢谢!我已经编辑了答案,所以现在两种方法都应该产生相同的输出。我不是说任何方法都是错误的,数组可能是一件好事(很难说op想要什么)。。。已投赞成票:)