On 9/17/20 11:24 AM, William Pearson wrote: > I am puzzled by the reason for this difference between lists and tuples. > > A list of with multiple strings can be reduced to a list with one string with > the expected results: > > for n in ['first','second']: > print n > > for n in ['first']: > print n > > The first loop prints "first", "second", and the second prints "first". > > ==== > > This is not true for a tuple: > > for n in ('first','second'): > print n > > for n in ('first'): > print n > > > prints "first", "second" in the first case, but "f","i","r","s","t" in the > second. > > Where is this inconsistency explained? > Parenthesis don't always make a tuple (and in fact aren't needed to make them)
('first') is just the string value 'first', inside a set of parenthesis to possible affect order of operations. For 1 element tuples, you need a trailing comma, like ('first,) and in many places it also could be just 'first', just like your first example could be just for n in 'first', 'second': -- Richard Damon -- https://mail.python.org/mailman/listinfo/python-list