Hi, Barak, Ron wrote:
Hi,Wanting to print the correct plural after numbers, I did the following: for num in range(1,4): string_ = "%d event%s" % (num,lambda num: num > 1 and "s" or "") print string_ However, instead of getting the expected output: 1 event 2 events 3 events I get: 1 event<function <lambda> at 0x00AFE670> 2 event<function <lambda> at 0x00AFE670> 3 event<function <lambda> at 0x00AFE6B0>
lambda creates a function so this is the result you are seeing. You would need to call the function to get your result. (num,(lambda n: n >1 and "s" or "")(num)) which is just a quite useless application of lambda :-) (num,num >1 and "s" or "") or even (num,"s" if num >1 else "") in python > 2.5 or in python <3.0: (num,"s"*(num >1)) :-) HTH Tino
smime.p7s
Description: S/MIME Cryptographic Signature
-- http://mail.python.org/mailman/listinfo/python-list