Python: преобразование значения None из функции print () в строку - PullRequest
1 голос
/ 18 марта 2019

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

Например, если передать список «спам», содержащий значения ['apples', 'bananas', 'tofu', 'cats'], будет возвращено: "apples, bananas, tofu, and cats".

Я написал следующий код:

def thisIsIt(alist):
  alist.insert(-1, 'and')
  alist1 = alist[:-2]
  alist2 = alist[-2:]
  for item in alist1:
    print(item, end = ", ")

  for item in alist2:
    print(item, end = " ")

, который возвращает: яблоки, бананы, тофу и кошек.Однако он печатается как нетип, а не как строка.Как я могу исправить это, пожалуйста?

Ответы [ 2 ]

0 голосов
/ 18 марта 2019

Код:

list_sample = ['apples', 'bananas', 'tofu', 'cats']

for i in range(0,len(list_sample)):
    if i < len(list_sample)-1 and i != len(list_sample)-2:
        print(list_sample[i],end = ", ")
    elif i == len(list_sample)-2:
        print(list_sample[i],end = " and ")
    else:
        print(list_sample[i])

Выход:

apples, bananas, tofu and cats 
0 голосов
/ 18 марта 2019

В любом случае, если вы хотите другое решение и хотите, чтобы оно возвращало строку, вы можете использовать мощность str.join () в python:

def thisIsIt(alist):
  resultString = ", ".join(alist[:-2] + [" and ".join(alist[-2:])])
  return resultString

myList = ['apples', 'bananas', 'tofu', 'cats']
myListAsString = thisIsIt(myList)
print(myListAsString)
#apples, bananas, tofu and cats 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...