Sto scrivendo una funzione per aggiungere un input a un elenco. Lo voglio in modo che quando inserisci 280 2
l'elenco diventi ['280', '280']
anziché ['280 2']
.Più ingressi da un ingresso
risposta
>>> number, factor = input().split()
280 2
>>> [number]*int(factor)
['280', '280']
Ricordate che concatenando una lista con se stesso con l'operatore * può avere unexpected results se l'elenco contiene elementi mutabili - ma nel tuo caso va bene.
edit:
soluzione in grado di gestire gli ingressi senza un fattore:
>>> def multiply_input():
... *head, tail = input().split()
... return head*int(tail) if head else [tail]
...
>>> multiply_input()
280 3
['280', '280', '280']
>>> multiply_input()
280
['280']
Aggiungi controllo degli errori, se necessario (ad esempio per gli ingressi vuoti) a seconda del caso d'uso.
from itertools import repeat
mes=input("please write your number and repetitions:").split()
listt= []
listt.extend(repeat(int(mes[0]), int(mes[1]))
#repeat(object [,times]) -> create an iterator which returns the object
#for the specified number of times. If not specified, returns the object
#endlessly.
È possibile gestire il caso con il numero imprecisato di ripetizioni estendendo l'ingresso analizzato un elenco comprendente 1. È quindi possibile tagliare l'elenco per lasciare i primi 2 articoli (in caso è stato fornito il numero di ripetizioni, che [1]
saranno scartati)
number, rep = (input().split() + [1])[:2]
[number] * int(rep)
Un po 'di testo potrebbe aiutare il lettore a comprendere più rapidamente la vostra soluzione. –
@LaurIvan davvero –
Questo codice fornisce gestione di eccezioni contro alcun secondo numero essendo provvista in put.
def addtolist():
number = input("Enter number: ")
try:
factor = input("Enter factor: ")
except SyntaxError:
factor = 1
for i in range(factor):
listname.append(number)
Mi piace, ma sembra che si imbatta in un errore quando si entra solo 280, potrei usare il codice brutto come faccio di solito per risolvere questo ma sai di qualsiasi soluzione elegante? –
Questa è magia, grazie. –