Skip to content
Advertisement

How to take Nested list as an input.?

how can I take this list below as an input in python directly.

a = [[1, 3, 4], [5, 2, 9], [8, 7, 6]] 

Do I have to use input() function and then arrange them using a for loop or there is any method to take it directly as input.

x=int(input("enter the size of list"))
y= int(input("enter the size of sublist"))
list1=[]
sublist=[]
for i in range(x):
    for j in range(y):
        sublist.append(input())
    list1.append(sublist)
    sublist=[]
print (list1)

Do I have to use this code only to take nested list as input or there is any other direct method to take it as input.

Advertisement

Answer

You could take larger parts (or the whole thing) as a string input with defined syntax.

e.g. Take each sublist as an input:

x=int(input("enter the size of list"))
list1=[]
for i in range(x):
    sublist = input(f"Enter sublist {i+1} as comma separated values")
    sublist = [int(v) for v in sublist.split(",")]
    list1.append(sublist)
print (list1)

Output:

enter the size of list
3
Enter sublist 1 as comma separated values
1,3,4
Enter sublist 2 as comma separated values
5,2,9
Enter sublist 3 as comma separated values
8,7,6
[[1, 3, 4], [5, 2, 9], [8, 7, 6]]

Or the whole thing together:

list1=input("Enter your list of lists using a space to separate the sublists and a comma to separate the values of the sublist. e.g. 1,2,4 8,2,1 9,1,0")
list1= [[int(v) for v in sublist.split(",")] for sublist in list1.split(" ")]
print (list1)

Output:

Enter your nested list using a space to separate the sublists and a comma to separate the values of the sublist. e.g. 1,2,4 8,2,1 9,1,0
1,3,4 5,2,9 8,7,6
[[1, 3, 4], [5, 2, 9], [8, 7, 6]]

User contributions licensed under: CC BY-SA
4 People found this is helpful
Advertisement