Добавление числа к спискам, в то время как вход является только списком - PullRequest
0 голосов
/ 01 июля 2019

Я сталкиваюсь с некоторыми ошибками в зависимости от ввода. Код запускается, если вход представляет собой список списков, но не запускается, если вход является просто списком.

def someFunction(input):
    output = [i + [0] for i in input]
    print output
someFunction([[1,2],[2,1]]) #list of lists runs
someFunction([[1,2]]) #list of lists with only one sublist runs
someFunction([1,2]) #list does not run

Есть ли способ заставить код работать со списком в качестве ввода?

1 Ответ

2 голосов
/ 01 июля 2019

Похоже, вы используете Python V2.something, основываясь на вашем операторе печати. Вы можете попробовать что-то вроде этого, список [1, 3, 5] приведет к выводу [[1, 0], [3,0], [5,0]]

def someFunction(my_input):
    output = [i + [0] if type(i) == list else [i] + [0] for i in my_input]
    print output

Если вы используете Python 3, вы хотите, чтобы оператор print был похож на

    print(output)

Если вы хотите, чтобы список [1, 3, 5] приводил к [1, 3, 5, 0], то это будет хорошо работать.

def someFunction(my_input):
    if all(type(i) == list for in in my_input)):
        print [i + [0] for i in my_input]
    elif any(type(i) == list for in in my_input)):
        print 'You cannot have both scalars and lists in the input list'
    else:
        print my_input + [0]
...