Search code examples
pythonlistinputnestedappend

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.


Solution

  • 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]]