I have this as my code right now
main.py
:
help = ["/help", ["This returns a list of all commands"]] color = ["/color", ["This changes the color of the console"]] cmds = [help, color] def getHelp(cmd:str=None): if not cmd: for index, c in enumerate(cmds): for i, help in enumerate(c): print(help+":", c[1]) return print("Retrieving command") for c in cmds: for help in c: if c == cmd[1]: print(console_color+help) else: continue
It returns the first list, but not the second one. Traceback:
Traceback (most recent call last): File "main.py", line 93, in <module> login() File "main.py", line 63, in login main() File "main.py", line 51, in main getHelp() File "main.py", line 34, in getHelp print(help+":", c[1]) TypeError: can only concatenate list (not "str") to list
How do I fix this?
Advertisement
Answer
Found a fix:
def getHelp(cmd:str=None): ct = 0 if not cmd: for c in cmds: for help in c: ct += 1 if ct % 2 == 0: # prevents printing the command and desc twice continue elif ct == len(cmds): return print(str(help)+":", str(c[1]).strip('[']')) # removes the brackets and quotes
If the count is a multiple of 2, it is skipped (to prevent printing twice). If the count is equal to the amount of commands, the iteration is stopped.