2016-03-07 4 views
0

Итак, мой вопрос прост. Я просто борюсь с синтаксисом здесь. Мне нужно прочитать в наборе целых чисел, 3, 11, 2, 4, 4, 5, 6, 10, 8, -12. То, что я хочу делать с этими целыми числами, помещает их в список, когда я их читаю. n = n x n массив, в котором они будут представлены. поэтому, если п = 3, то я будет передан что-то вроде этого 3 \ П 11 2 4 \ п 4 5 6 \ п 10 8 -12 (\ N, символизирующий новую строку в входном файле)Чтение в целых числах в Python

n = int(raw_input().strip()) 
a = [] 
for a_i in xrange(n): 
    value = int(raw_input().strip()) 
    a.append(value) 

print(a) 

I получить эту ошибку из кода выше кода:

value = int(raw_input().strip()) 
ValueError: invalid literal for int() with base 10: '11 2 4' 

фактический вызов можно найти здесь, https://www.hackerrank.com/challenges/diagonal-difference. Я уже завершил это в Java и C++, просто пытаясь сделать это сейчас на Python, но сосать на python. Если кто-то захочет, их тоже нет, видя правильный способ читать по всей строке, скажите «11 2 4», создав новый список этой строки и добавив его в уже существующий список. Итак, все, что мне нужно сделать, это поиск указанного индекса списка [wishInternalList []].

ответ

1

Вы можете разделить строку на пустое пространство и преобразовать записи в целые числа.

Это дает вам один список:

for a_i in xrange(n): 
    a.extend([int(x) for x in raw_input().split()]) 

и этот список списков:

for a_i in xrange(n): 
    a.append([int(x) for x in raw_input().split()]): 
0

Вы получаете эту ошибку, потому что вы пытаетесь дать все входы в одну линию. Чтобы справиться с этой проблемой, вы можете использовать этот код

n = int(raw_input().strip()) 
a = [] 
while len(a)< n*n: 
    x=raw_input().strip() 
    x = map(int,x.split()) 
    a.extend(x) 

print(a) 
+0

Это только получение одной строки, его не принимать во второй или третьей линии –

+0

нет, если длина массива меньше п он идет с входным – mugetsu

+0

@ CodyBentson Извините, я понял, что вы имеете в виду, я отредактировал код, который вы можете попробовать. – mugetsu

Смежные вопросы