On Feb 18, 4:26 pm, Jeff Schwab <[EMAIL PROTECTED]> wrote: > Lie wrote: > > On Feb 16, 12:29 pm, Jeff Schwab <[EMAIL PROTECTED]> wrote: > >> Paul Rubin wrote: > >>> Jeff Schwab <[EMAIL PROTECTED]> writes: > >>>> Why not? They seem intuitive to me. I would find it weird if you > >>>> couldn't have 0-tuple, and even weirder if you couldn't have a > >>>> 1-tuple. Maybe my brain has been warped by too much C++ code. > >>> The idea is that a 2-tuple (of numbers, say) is a pair of numbers, a > >>> 3-tuple is three numbers, and a 1-tuple is one number. That would > >>> mean a number and a 1-tuple of numbers are the same thing, not > >>> separate types. > >> No, that doesn't follow. A set with one element is not the same thing > >> as that element, a sequence of one element is not the same thing as that > >> element, and a tuple with one element is not the same thing as that > >> element. > > > Probably the analogue of tuples in human language would be like this: > > A: What ice-cream flavour do you have? > > B: "Vanilla", "Chocolate", and "Strawberry" > > > If, for example, he only have Vanilla: > > A: What ice-cream flavour do you have? > > B: "Vanilla" > > > This way of thinking makes 1-tuple the same as the element itself. > > Yes. I first heard the term "tuple" in a physics class, where it was > used to mean that a mathematical function took an arbitrary number of > objects. It was by analog with "triple, quadruple, quintuple... > n-tuple." That's a different context than computer science, though, > which is a specific branch of mathematics with its own terminology. In > CS, a tuple is a kind of data structure that is specifically not > identical with any of its elements. That's the sort of tuple used in > Python.- Hide quoted text -
>>> a= object() >>> (a,) is a False >>> (a,) is (a,) False >>> a is a True >>> (a,) == (a,) True >>> a= [] >>> a.append( a ) >>> a [[...]] >>> tuple(a) is tuple(a) False hasVanilla= True hasStrawberry= True hasChocolate= True if hasVanilla: print "Vanilla" if hasVanilla and not hasChocolate: print "and" if hasStrawberry: print "Strawberry" if hasVanilla or hasStrawberry and hasChocolate: print "and" if hasChocolate: print "Chocolate." -- http://mail.python.org/mailman/listinfo/python-list