0
How to add unlimited input with a single row of code?
now i am making listing code. i want the input system is always open for every input for the list, without write the code for every input invidually. in other word the input is unlimited. the input value is stored in the list. despite according what i've tried, my code only accept input as much the input statement wrote
7 Respuestas
0
Why does it have to be in one line?
0
In one line... you can’t, but you can create a thread (make sure to set it as a deamon thread in order to avoid problem when the program finish), the thread must call a function wich is a infinite loop (while True:) and inside the loop just append the input to the list, for better better control you can also have a global variable to control if the input is enabled or disabled, you can use it with to nested loops
while True:
while var:
input()
for that, var must be. boolean
0
Do you mean something like this:-
myint = int(input("Enter number of inputs required:- "))
mylist2 = [input() for x in [a for a in range(myint)]]
print(mylist2)
# or
print(*mylist2)
0
You can make a rule in your program, where for example each space separated words are treated as separate inputs.
list1 = input(": ").split(" ")
If input was "Bear ate 20 strawberries.", the list1 would equal ["Bear", "ate", "20", "strawberries"].
String method split can anyways return empty strings, if there are 2 matches in row.
"4 spaces".split(" ") would evaluate to ["4", "", "", "", "spaces"] and those empty lists might not be wanted.
But you can easily filter those:
for i in range(len(list1)-1, -1, -1)):
if list1[i] == "":
list1.pop(i)
(Used range(len(list1)-1, -1, -1)) because the lists size would change and thus it is smart to remove items starting from the end of the list.)
0
Good idea Seb TheS . Actually, if you leave the argument empty in the split() method, spaces will be ignored.
So "4 spaces".split() would become ["4", "spaces].
0
Russ I know that. .split(" ") to tell that you can use any string to be used to split the input.
0
Seb TheS ok. I must be misunderstanding your point as it seems much easier to me to use split() and have your list ready for you (and thus do it in one line which the question asked for) , than to use split(" ") and have to remove all the empty strings from the list.