2015-10-29 2 views
1

Я написал этот код и предоставил мне список в виде вывода без скобок пример 4,3,2,1, где я хотел вернуться [4,3,2,1].Как вернуть список с помощью скобок?

Пожалуйста, дайте мне знать, где моя небольшая ошибка.

def inverse(mdg): 
    i = 0 
    Sr = '' 
    while i < len(mdg): 
     Sr =Sr + mdg[-(i+1)] 
     i = i+1 
    return Sr 
ch = (input('Veuillez entrer une liste des valeurs separees par virgules: ')) 
l1 = list(ch.split(',')) 
print((",".join(inverse(l1)))) 
+0

Это ваша настоящая проблема, чтобы заставить его печатать таким образом (если да, просто добавьте '[' before и ']' after), или это действительно построить список чисел (не charac ters), а затем отобразить его? – Julien

ответ

1

Речь идет о return string like '[4,3,2,1]', а не список. Также нужно удалить "элементов.

Код

def inverse(mdg): 
    """This function reversed string without quotemark of reversed list of splitted input by ',' 
    """ 
    return ",".join(reversed(mdg.split(','))).join(["[", "]"]) 

Образец

>>> ch = (input('Veuillez entrer une liste des valeurs separees par virgules: ')) 
Veuillez entrer une liste des valeurs separees par virgules: 1,2,3,4 
>>> inverse(ch) 
'[4,3,2,1]' 
>>> print(inverse(ch)) 
[4,3,2,1] 

Или просто добавьте» .join ([ "[", "]"])

def inverse(mdg): 
    i = 0 
    Sr = '' 
    while i < len(mdg): 
     Sr =Sr + mdg[-(i+1)] 
     i = i+1 
    return Sr 
ch = (input('Veuillez entrer une liste des valeurs separees par virgules: ')) 
l1 = list(ch.split(',')) 
print((",".join(inverse(l1)).join(['[',']']))) 
+0

Есть вероятность, что OP требует фактического списка вместо строки :) – The6thSense

+1

@VigneshKalai, Если просто хотите инвертировать список, 'list (reverseed (input_list)) ' достаточно. – Curry

2

Прежде всего вы возвращаете строку, а не список

Если это то, что вы хотите просто добавить [ в начале и ] до конца строки, как этот

Модификация:

def inverse(mdg): 
    i = 0 
    Sr = '' 
    while i < len(mdg): 
     Sr =Sr + mdg[-(i+1)] 
     i = i+1 
    return Sr 
ch = (input('Veuillez entrer une liste des valeurs separees par virgules: ')) 
l1 = list(ch.split(',')) 
print("["+",".join(inverse(l1))+"]") 

Попробуйте добавить к list вместо из string возвращает список

Код:

def inverse(mdg): 
    i = 0 
    Sr = [] # Create list 
    while i < len(mdg): 
     Sr += mdg[-(i+1)] # Add to list 
     i = i+1 
    return Sr # Return list 
ch = input('Veuillez entrer une liste des valeurs separees par virgules: ') 
l1 = ch.split(',') 
print(inverse(l1)) 

Выход:

Veuillez entrer une liste des valeurs separees par virgules: 1,2,3,4 
['4', '3', '2', '1'] 

Там нет необходимости создавать функцию обратного списка может быть сделано так просто, как это

Код2:

ch = input('Veuillez entrer une liste des valeurs separees par virgules: ') 
l1 = ch.split(',') 
print(l1[::-1]) # Reverses the list 

Выходной список строки, если вы хотите получить список номеров

использовать этот фрагмент кода перед печатью

сниппет:

print (map(int,listofstrings)) # Prints list of numbers 
+1

'.split()' возвращает список, чтобы вам не нужно снова вызвать функцию 'list()'. –

+1

@KevinGuan да спасибо. Утренний кофе не работал: P – The6thSense

+0

Этот вопрос хочет вернуться '[4, 3, 2, 1]', а не '[' 4 ',' 3 ',' 2 ',' 1 ' ]». – Curry

Смежные вопросы