J'essaie d'écrire une fonction qui prend une valeur de liste comme argument et renvoie une chaîne avec tous les éléments séparés par une virgule et un espace, avec 'et' insérés avant le dernier élément.
Par exemple, passer la liste 'spam' qui contient les valeurs ['pommes', 'bananes', 'tofu', 'chats'] , renverrait: "pommes, bananes, tofu et chats ".
J'ai écrit le code suivant:
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 = " ")
qui renvoie: pommes, bananes, tofu et chats. Cependant, il est imprimé en tant que non-type, au lieu d'une chaîne. Comment puis-je corriger cela s'il vous plaît?
3 Réponses :
Dans tous les cas, si vous voulez une solution différente et souhaitez qu'elle renvoie une chaîne, vous pouvez utiliser la puissance de str.join () en 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
Code:
apples, bananas, tofu and cats
Sortie:
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])
J'ai essayé KISS . (Keep It Simple Stupid)
spam = ['apples', 'bananas', 'tofu', 'cats', 'oranges']
def newlist(x):
myStr = ''
if len(x) != 0:
for i in range(len(x)-1):
myStr += str(x[i]+', ')
return(myStr + 'and ' + x[-1])
newlist(spam)
Je pense que pour les débutants comme moi, essayez de garder les choses simples, les gars!
Cependant, il est imprimé sous forme de non-type, au lieu d'une chaîne Comment le savez-vous?
Je pense que vous avez ce que vous imprimez et ce que vous retournez à l'envers; cette fonction ne renvoie rien, mais imprime certainement quelque chose.
Peut-être recherchez-vous une fonction similaire à ce < / a>