'How to take a tuple of two lists from user input?

How to take a tuple of two equal-size lists from user input at a bash terminal from within a python script? Let's assume we want the program to register the following tuple

([0.001, 0.01, 0.1, 1], [1000, 100, 10, 1])

The only condition to grab them is to do that in pairs of two: 0.001, 1000 and then 0.01, 100 and etc.


Explanation

the code takes 0.001 and 1000 first

it then takes 0.01 and 100 second

it then takes 0.1 and 10 third

and finally it takes 1 and 1.

Once it has taken all of them, it will arrange them in the said tuple.



Solution 1:[1]

You can use loop to take inputs.

lst1 = list()
lst2 = list()
for i in range(4):
    lst1.append(input("input 1 :"))
    lst2.append(input("input 2 :"))

tup = (lst1, lst2)

Solution 2:[2]

N = 4
# user input in this way:
# 1 2
x =  [tuple(map(lambda x: int(x), input().split())) for _ in range(N)]

# user input in this way:
# 1 
# 2
# x = [(int(input()), int(input())) for _ in range(N)]

if you just want to extract the input:

x, y = ([0.001, 0.01, 0.1, 1], [1000, 100, 10, 1])
print(tuple(zip(x,y)))
# ((0.001, 1000), (0.01, 100), (0.1, 10), (1, 1))

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Ahmed Javed
Solution 2