在循环中生成备用切换值的最佳方法?
我正在编写这个小Python程序,它将从
数据库中提取值并生成一些XHTML。
我正在生成一个< tablewhere我希望替代< tr>'是
< tr class ="偶数>
和
< tr class =" Odd">
最好的方法是什么?
我写了一个小发生器(代码片段如下)。有更好的
(更多Pythonic)方式吗?
#代码开始
def evenOdd ():
values = [" Even",Odd]
state = 0
而True:
收益率值[state]
state =(state + 1)%2
#Snippet
trClass = evenOdd()
stringBuffer = cStringIO.StringIO()
为id,结果中的名字:
stringBuffer.write(' '''''
< tr class ="%s">
< td>%d< / td>
< td>%s< / td>
< / tr>
''''''
%
(trClass.next(),id,name))
#代码结束
I''m writing this little Python program which will pull values from a
database and generate some XHTML.
I''m generating a <tablewhere I would like the alternate <tr>''s to be
<tr class="Even">
and
<tr class="Odd">
What is the best way to do this?
I wrote a little generator (code snippet follows). Is there a better
(more "Pythonic") way to do this?
# Start of Code
def evenOdd():
values = ["Even", "Odd"]
state = 0
while True:
yield values[state]
state = (state + 1) % 2
# Snippet
trClass = evenOdd()
stringBuffer = cStringIO.StringIO()
for id, name in result:
stringBuffer.write(''''''
<tr class="%s">
<td>%d</td>
<td>%s</td>
</tr>
''''''
%
(trClass.next(), id, name))
# End of Code
在2007年10月17日星期三23:55 +0000,Debajit Adhikary写道:
On Wed, 2007-10-17 at 23:55 +0000, Debajit Adhikary wrote:
我正在写这个小Python程序从
数据中提取值基础并生成一些XHTML。
我正在生成一个< tablewhere我希望替代< tr>'是$
< tr class ="偶数">
和
< tr class =" Odd">
最好的方法是什么?
我写了一个小生成器(代码片段如下)。还有更好的
(更多Pythonic)方式吗?
#代码开头
def evenOdd():
values = [" Even",Odd]
state = 0
而True:
收益率值[州]
州=(州+ 1)%2
#Snippet
trClass = evenOdd()
stringBuffer = cStringIO.StringIO()
代表id,结果中的名字:
stringBuffer.write('''''''
< tr class ="%s">
< td>%d< / td> ;
< td>%s< / td>
< / tr>
''''''
%
(trClass.next(),id,name))
I''m writing this little Python program which will pull values from a
database and generate some XHTML.
I''m generating a <tablewhere I would like the alternate <tr>''s to be
<tr class="Even">
and
<tr class="Odd">
What is the best way to do this?
I wrote a little generator (code snippet follows). Is there a better
(more "Pythonic") way to do this?
# Start of Code
def evenOdd():
values = ["Even", "Odd"]
state = 0
while True:
yield values[state]
state = (state + 1) % 2
# Snippet
trClass = evenOdd()
stringBuffer = cStringIO.StringIO()
for id, name in result:
stringBuffer.write(''''''
<tr class="%s">
<td>%d</td>
<td>%s</td>
</tr>
''''''
%
(trClass.next(), id, name))
这是一个值得尊敬的第一次尝试,但我建议你用itertools模块自己熟悉
。它有很多有用的工具,可以让你的代码更加优雅和简洁。
我会给你提示,而不是拼写出最后的结果。 :看看
itertools.cycle和itertools.izip。
HTH,
-
Carsten Haese
http://informixdb.sourceforge.net
2007-10-17,Debajit Adhikary< de ****** @ gmail.comwrote:
On 2007-10-17, Debajit Adhikary <de******@gmail.comwrote:
#代码开头
def evenOdd():
values = [" Even"," Odd"]
state = 0
而True:
收益率值[州]
州=(州+ 1)%2
# Start of Code
def evenOdd():
values = ["Even", "Odd"]
state = 0
while True:
yield values[state]
state = (state + 1) % 2
我会用
替换最后一行
state ^ = 1
保存一些指令,但我花了太多时间
使用麦克风在时钟上运行的oroprocessors以
KHz测量。
可能还有其他更多的Pythonic方式...
-
格兰特爱德华兹格兰特哇!我的EARS已经过去了!
visi.com
I''d replace the last line with
state ^= 1
to save a couple instructions, but I spend too much time
working with micoroprocessors running on clocks measured in the
KHz.
There are probably other more Pythonic ways...
--
Grant Edwards grante Yow! My EARS are GONE!!
at
visi.com
10月18日,上午1:55, Debajit Adhikary< debaj ... @ gmail.comwrote:
On Oct 18, 1:55 am, Debajit Adhikary <debaj...@gmail.comwrote:
我正在编写这个小Python程序,它将从
$ b中提取值$ b数据库并生成一些XHTML。
我正在生成一个< tablewhere我希望替换< tr>'是
>
< tr class =" Even">
和
< tr class =" Odd">
最好的方法是什么?
I''m writing this little Python program which will pull values from a
database and generate some XHTML.
I''m generating a <tablewhere I would like the alternate <tr>''s to be
<tr class="Even">
and
<tr class="Odd">
What is the best way to do this?
来自itertools import izip
def toggle( start = True):
flag = start
而1:
flag = not flag
yield flag
CSS =(" even",odd)
HTML =''< tr class ="%s">< td>%d< / td>< td>%s< / td>< / tr>''
结果= [(1,''开e''),(2,''two''),(3,''Three''),(4,''Four''),(5,
''Five' ')]
for flag,(id,name)in izip(toggle(),result):
print HTML%(CSS [flag], id,name)
< tr class =" even">< td> 1< / td>< td> One< / td>< / tr>
< tr class =" odd">< td> 2< / td>< td> 2< / td>< / tr>
< tr class =" even">< td> 3< / td>< td>三< / td>< / tr>
< tr class =" odd">< ; td> 4< / td>< td>四< / td>< / tr>
< tr class =" even">< td> 5< / td> < td>五< / td>< / tr>
from itertools import izip
def toggle(start=True):
flag = start
while 1:
flag = not flag
yield flag
CSS = ("even", "odd")
HTML = ''<tr class="%s"><td>%d</td><td>%s</td></tr>''
result = [(1, ''One''), (2, ''two''), (3, ''Three''), (4, ''Four''), (5,
''Five'')]
for flag, (id, name) in izip(toggle(), result):
print HTML % (CSS[flag], id, name)
<tr class="even"><td>1</td><td>One</td></tr>
<tr class="odd"><td>2</td><td>two</td></tr>
<tr class="even"><td>3</td><td>Three</td></tr>
<tr class="odd"><td>4</td><td>Four</td></tr>
<tr class="even"><td>5</td><td>Five</td></tr>