枚举元组并存储信息

时间:2018-09-03 14:49:09

标签: python

我如何枚举一个月的元组并实际存储该信息以备后用?

months = ( '==========', 'Ιανουάριος', 'Φεβρουάριος', 'Μάρτιος', 'Απρίλιος', 'Μάϊος', 'Ιούνιος', 'Ιούλιος', 'Αύγουστος', 'Σεπτέμβριος', 'Οκτώβριος', 'Νοέμβριος', 'Δεκέμβριος' )
months = enumerate( months )

以上返回错误:

TypeError: sequence item 0: expected str instance, tuple found

此外,上述枚举数据的存储方式必须使以后使用几个月的矿井代码继续起作用。

name = month = year = ''

# populate names, months, years
names.add( '====================' )
names = sorted( names )

months = ( '==========', 'Ιανουάριος', 'Φεβρουάριος', 'Μάρτιος', 'Απρίλιος', 'Μάϊος', 'Ιούνιος', 'Ιούλιος', 'Αύγουστος', 'Σεπτέμβριος', 'Οκτώβριος', 'Νοέμβριος', 'Δεκέμβριος' )

years  = ( '=====', 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 )


pdata = pdata + '''
<br><h3><br><font color=gold size=6> Επιλεκτική Αναζήτηση </font><br>
<form method="POST" action="%s">
''' % url_for('seek')

pdata = pdata + '''<select name="name"><option>  %s </option></select>''' % '</option><option>'.join( names )

pdata = pdata + '''<select name="month"><option> %s </option></select>''' % '</option><option>'.join( months )

pdata = pdata + '''<select name="year"><option>  %s </option></select>''' % '</option><option>'.join( list( map( str, years ) ) )

pdata = pdata + '''
<br><input type="image" src="/static/img/submit.gif" name="seek" value="<Αναζήτηση>">
</form> <br><br>
'''

return pdata

1 个答案:

答案 0 :(得分:0)

枚举对象的形式(内部)

months = [
    (0, '====='),
    (1, 'January),
    ...
]

字符串join方法要求加入一系列 strings 。但是,它得到一个 tuples 序列,因此会给出错误。

由于要连接需要字符串列表,因此请为菜单的每个选项创建一个字符串,然后将其连接。像

options = [f'<option value="{index}">{name}</option>' for index, value in enumerate(months)]

options列表的格式为

[
     '<option value="1">January</option>',
     '<option value="2">February</option>'
     ...]

因此,您只需将其与一个空字符串连接起来,然后使用select元素进行替换。

select = '<select>' + ''.join(options) + '</select>'

这是您的select元素,为字符串。由于它是字符串,因此您可以在字符串之前或之后添加任何内容

pdata = "<h1>διαλεξε μηνα</h1>" + select + "<button>στειλε φορμα</button>"

(这在python 3.6+中有效。如果您使用的是旧版本,请使用适当的字符串格式)。