2015-10-19 2 views
0

Я пытаюсь сгенерировать список python. В этой программе я пытаюсь написать функцию, которая берет значение списка с клавиатуры и возвращает строку со всеми элементами, разделенными запятой и пробелом, с "и", вставленными до последнего элемента. Например, передача предыдущего списка спама в функцию возвращает 'яблоки, бананы, тофу и кошки'. Это мой кодПопытка сгенерировать список, используя скрипт python

spam=[] 

def rock(val): 
    while True: 
     print("Enter the text: ") 
     val=input() 
     spam.append(val) 
     return spam 


print("Enter the number: ") 
n=int(input()) 
for i in range(0,n): 
    s=', '.join(rock('')) 
    print(s) 

Output: 
Enter the number: 
3 
Enter the text: 
rock 
rock 
Enter the text: 
dog 
rock, dog 
Enter the text: 
cad 
rock, dog, cad 

Теперь, в упомянутой выше программе, мне удалось создать список, разделенный запятой. Но я не могу понять, как поставить "и" как раз перед последним значением. как это, «яблоки, бананы, тофу, и кошки»

ответ

1

Просто присоединиться к голове списка, используя «„ а затем присоединиться с помощью“и», например:

words = ["apples", "bananas", "tofu", "cats"] 

head = ", ".join(words[:-1]) 
result = ", and ".join([head, words[-1]]) 

print(result) 

(последние могут быть объединены напрямую: `result = head +" и "+ words [-1])

+0

Это дает синтаксическую ошибку. – Jordan

+0

@Jordan Где вы получаете синтаксическую ошибку? Я проверил использование как 'python', так и' python3'. Я обновил ответ с примерами входных данных и распечаткой результата. – skyking

+0

Большое количество кода работает отлично. – Jordan

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