Я делаю сортировку слияния в python, но у меня есть проблема. Когда я пытаюсь вставить список из консоли (по одному числу на строку, которая возвращает список строк), я не могу преобразовать его в целые числа. Можете ли вы помочь мне понять проблему.AttributeError: объект 'int' не имеет атрибута 'split'
import sys
def mergeSort(lista):
res = []
for i in lista[0].split():
res.append(int(i))
if len(res)>1:
mid = len(res)//2
lefthalf = res[:mid]
righthalf = res[mid:]
mergeSort(lefthalf)
mergeSort(righthalf)
i=0
j=0
k=0
while i<len(lefthalf) and j<len(righthalf):
if lefthalf[i]<righthalf[j]:
res[k]=lefthalf[i]
i=i+1
else:
res[k]=righthalf[j]
j=j+1
k=k+1
while i<len(lefthalf):
res[k]=lefthalf[i]
i=i+1
k=k+1
while j<len(righthalf):
res[k]=righthalf[j]
j=j+1
k=k+1
print(res)
alist = []
for l in sys.stdin:
alist.append(l.strip())
mergeSort(alist)
Ошибка код говорит: AttributeError: «INT» объект не имеет атрибута «раскола» ввода является файлом (при условии из оболочки с помощью команды: «python3 merge.py < data.txt») со списком цифр по одной в строке. Пример: Если вернуться 0 2 3 4 7 11 12 Конечно я не выход из-за ошибки
Все это означает, что первым элементом в 'lista' является объект' int', а не строка. Как-то ваш код - это добавление целого числа в список, который вы проходите. Таким образом, это не может быть полный пример кода ... – Iguananaut
, но все они являются единственной строкой ... – user28011994
Единственное место, где отображается ваш код, который использует 'str.split()' находится в элементе списка, который якобы содержит строки. Вероятно, вы не смотрите на тот же код, который вы используете, или вы не опубликовали тот же код, который вы используете здесь. – Iguananaut