2013-04-12 16 views
6

Sono un principiante in Python e sto risolvendo una domanda su CodeChef dove devo leggere una riga di interi separati da spazi. Questo è quello che sto facendo:Leggere una riga di interi in Python

def main(): 

    t=int(raw_input()) #reading test-cases 

    while t!=0: 
    n, k=raw_input().split() #reading a line of two space separated integers 
    n, r=int(n), int(r) #converting them into int 
    list=[] 
    #reading a line of space separated integers and putting them into a list 
    list[-1:101]=raw_input().split() 

Ora la conversione di ogni elemento della lista a intero. C'è un modo migliore per farlo? Si prega di suggerire una risorsa online in cui posso giocare con Python e imparare trucchi e suggerimenti!

+0

qual è la lo scopo di t? – jurgenreza

+0

e perché leggi due numeri interi e cosa stai cercando di fare con '[-1: 101]' slice? – jurgenreza

+0

leggere due interi è una parte della soluzione, non prestare attenzione a questo. Venendo a tagliare, dal momento che devo leggere una riga di interi separati da spazi e metterli in una lista, sto usando la lista [-1: 101]. Non ci saranno più di 100 numeri. Quindi usando questo e split(), tutti i numeri (in forma di stringa) sono memorizzati nella lista. – kunal18

risposta

20

In Python 2, si potrebbe scrivere:

numbers = map(int, raw_input().split()) 

Questa legge una riga, si divide a spazi bianchi, e si applica int() ad ogni elemento del risultato.

Se si sta utilizzando Python 3, l'espressione equivalente sarebbe:

numbers = list(map(int, input().split())) 

o

numbers = [int(n) for n in input().split()] 
0

map(int, list) dovrebbe risolvere il problema

+0

Puoi anche provare [int (i) per i in elenco] –

Problemi correlati