@nilamo no, I don´t want to copy a list inside a function, all what I need is this function should work for changes in a list. For example, after __init__ (which creates a list self.tab) I want __str__() to create a string from this list. Using the code by @buran few posts above it works, but I need to call this method also later, after some changes in this self.tab happen. And these are specifically "." changed to a set. After this, method __str__() create a string consisting of numbers and sets, but I still want to put "." instead of sets here.
Magic method __str__
Magic method __str__
|
Dec-22-2018, 03:55 PM
UP....
Dec-22-2018, 05:26 PM
def __str__(self): lines = [] for sub_list in self.tab: lines.append(' '.join([str(item) for item in sub_list if not isinstance(item, set) else '.'])) return '\n'.join(lines)
Craig "Ichabod" O'Brien - xenomind.com
I wish you happiness. Recommended Tutorials: BBCode, functions, classes, text adventures
Dec-22-2018, 07:43 PM
This raises me an invalid syntax error and not sure what is wrong there.. :/
Dec-22-2018, 08:13 PM
Sorry, that should be:
def __str__(self): lines = [] for sub_list in self.tab: lines.append(' '.join([str(item) if not isinstance(item, set) else '.' for item in sub_list])) return '\n'.join(lines)
Craig "Ichabod" O'Brien - xenomind.com
I wish you happiness. Recommended Tutorials: BBCode, functions, classes, text adventures
Dec-23-2018, 10:11 AM
@ichabod801 thanks, this seems working, the only thing missing (I forgot to mentioned that, but I guess it´s just an addition into this generator notation) - if length of set is 1, it should put that one item (number) into that string, instead of "."
Is it possible to add "elif" statement there?
Dec-23-2018, 03:59 PM
No, you can't put an elif in a ternary statement. You would have to break that list comprehension out into a loop with a full conditional statement.
Craig "Ichabod" O'Brien - xenomind.com
I wish you happiness. Recommended Tutorials: BBCode, functions, classes, text adventures |
|
Users browsing this thread: 2 Guest(s)