2013-04-12 15 views
6

Jestem początkujący w Pythonie i rozwiązuję pytanie w CodeChef, gdzie muszę czytać wiersz rozdzielonych spacjami liczb całkowitych. Oto, co robię:Odczytanie wiersza liczb całkowitych w Pythonie

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() 

Teraz mogę przekonwertować każdy element na liście na liczbę całkowitą. Czy jest jakiś lepszy sposób na zrobienie tego? Proszę zasugerować zasób online, w którym mogę grać w Pythonie i uczyć się porad i wskazówek!

+0

jaki jest cel t? – jurgenreza

+0

i dlaczego czytasz dwie liczby całkowite i co próbujesz zrobić za pomocą '[-1: 101]' slice? – jurgenreza

+0

czytanie dwóch liczb całkowitych jest częścią rozwiązania, nie zwracaj na to uwagi. Przechodzę do plasterka, ponieważ muszę przeczytać wiersz rozdzielonych spacjami liczb całkowitych i umieścić je na liście, używam listy [-1: 101]. Nie będzie więcej niż 100 numerów. Więc używając tego i split(), wszystkie liczby (w postaci łańcucha) są przechowywane na liście. – kunal18

Odpowiedz

20

W Pythonie 2, można napisać:

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

to czyta wiersz, dzieli go na białej przestrzeni, i stosuje int() do każdego elementu wyniku.

Jeśli uzywasz Python 3, odpowiednik wyrażenie byłoby:

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

lub

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

map(int, list) powinno rozwiązać twój problem

+0

Możesz także wypróbować [int (i) dla i na liście] –

Powiązane problemy