[英]Python Can I add a tuple to a generator?
我想在前面添加('','Day')。 現在,它為1到31的數字提供了一個下拉菜單,我想在頂部選擇“天”。
DAY_CHOICES = (
# I was hoping this would work but apparently generators don't work like this.
# ('', 'Day'),
(str(x), x) for x in range(1,32)
)
# I'll include this in the snippet in case there's some voodoo I can do here
from django import forms
class SignUpForm(forms.Form):
day = forms.ChoiceField(choices=DAY_CHOICES)
您需要itertools.chain()
。
for i in itertools.chain(('foo', 'bar'), xrange(1, 4)):
print i
DAY_CHOICES = ( (str(x),x) if x>0 else('','Day') for x in range(0,32) )
這似乎是對發電機的一種錯誤使用。 生成器不是列表,它是生成值序列的函數,因此不可能“將元組添加到生成器”。
模型初始化后,發電機將耗盡。 例如,您可能想稍后再使用DAY_CHOICES-這將是不可能的。
如果您在此處沒有使用生成器的特定原因,建議您將DAY_CHOICES改為列表:
DAY_CHOICES = [('', 'Day')] + [(str(x), x) for x in range(1,32)]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.