Author serhiy.storchaka
Recipients serhiy.storchaka
Date 2019-10-04.15:33:41
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1570203221.73.0.664458057352.issue38371@roundup.psfhosted.org>
In-reply-to
Content
The tkapp.split() method has weird behavior. It splits a string recursively, so the type of items and the depth of nesting depends on spaces in string values. For example:

>>> import tkinter
>>> root = tkinter.Tcl()
>>> root.tk.split('Hi')
'Hi'
>>> root.tk.split('Hello "Good bye"')
('Hello', ('Good', 'bye'))

It may work as you meant in some cases (if items at the same level either all have spaces or all do not have spaces), but return unexpected  result for untested cases. It is more robust to use the tkapp.splitlist() method, which split exactly one level and always returns a tuple of strings. It can be used recursively if you need nested lists.

>>> root.tk.splitlist('Hi')
('Hi',)
>>> root.tk.splitlist('Hello "Good bye"')
('Hello', 'Good bye')
>>> [root.tk.splitlist(x) for x in root.tk.splitlist('Hello "Good bye"')]
[('Hello',), ('Good', 'bye')]
History
Date User Action Args
2019-10-04 15:33:41serhiy.storchakasetrecipients: + serhiy.storchaka
2019-10-04 15:33:41serhiy.storchakasetmessageid: <1570203221.73.0.664458057352.issue38371@roundup.psfhosted.org>
2019-10-04 15:33:41serhiy.storchakalinkissue38371 messages
2019-10-04 15:33:41serhiy.storchakacreate