[Python] Need help in writing list program that removes square brackets as well as contents stored within from userinput | SoloLearn: Learn to code for FREE!

+1

[Python] Need help in writing list program that removes square brackets as well as contents stored within from userinput

My current program at the moment: filename = [] while True: fileinput = input("Filename? ") if fileinput == "": break else: filename.append(fileinput) print(filename) Key Points: - Must be able to take in any input - Able to remove [] as well as any content stored inside the [] if present, if no [] are present. - Cannot use import re - Preferable to use splicing method Any help will be appreciated as I am new to python and have troubles formulating the condition.

10/21/2020 1:18:23 PM

Frost Spectre

9 Answers

New Answer

+2

If there only one '[]' in your input, then use something like: ind0 = fileinput.find('[') ind1 = fileinput.find(']') + 1 and then slice out these two indices from your string like: fileinput = fileinput[:ind0] + fileinput[ind1:] Ofcourse there are many solutions for this, at least this one exists.

+2

Ah icic. Thank you for help! Your explanation and code have been really helpful for me. Glad that I learnt something new today.

0

Any idea how i can merge your code into mine as i need to keep prompting filename unless empty string is given.

0

filename = [] while True: fileinput = input("Filename? ") if fileinput == "": break else: ignore = 0 for char in fileinput: if char == "[": ignore = 1 elif char == "]": ignore = 0 elif ignore == 0: filename += char filename.append(fileinput) print(filename) Like this? It creates a very weird output though and does not remove []

0

But am sure that i probably not doing it right. Pls guide me if possible.

0

Like this? filename = [] while True: fileinput = input("Filename? ") if fileinput == "": break else: ignore = 0 for char in fileinput: if char == "[": ignore = 1 elif char == "]": ignore = 0 elif ignore == 0: filename += char filename.append(filename) print(filename) Input: Filename? test [test] Filename? [test] test Output: ['t', 'e', 's', 't', ' ', [...], ' ', 't', 'e', 's', 't', [...]]

0

I need the output to be [test, test]

0

Thank you it works as intended. If it doesn't trouble you, can you please help explain what does the lines mean: else: ignore = 0 fileinput2 = "" for char in fileinput: if char == "[": ignore = 1 elif char == "]": ignore = 0 elif ignore == 0: fileinput2 += char filename.append(fileinput2) Sorry this is the first time i am using ignore command.

0

So ignore = 1 stops any input from being appended to list till ignore becomes 0?