мой вопрос разделен на две части.
сначала мне нужно отсортировать список следующим образом: a = ['Zone 3', 'Zone', 'Zone 9', 'Zone 10', 'Zone 5']
по номеру Зоны.
Результат должен выглядеть следующим образом: result = ['Zone', 'Zone 3', 'Zone 5', 'Zone 9', 'Zone 10']
Я пробовал это со следующим кодом:
import numpy as np
a = ['Zone 3', 'Zone', 'Zone 9', 'Zone 10', 'Zone 5']
b = np.empty((0,2))
for i in range(0, len(a)):
if len(a[i]) > 4:
a1 = a[i].split()
a1 = np.array([[a1[0],int(a1[1])]])
if len(a[i]) == 4:
a1 = np.array([[a[i], '']])
print(a2)
b = np.append(b, a1, axis=0)
b = b[b[:,1].argsort()]
print(b)
с результатом:
[['Zone' '']
['Zone' '10']
['Zone' '3']
['Zone' '5']
['Zone' '9']]
Проблема, кажется, в том, что argsort () не распознает 10 как 10, а как 1.
Вторая проблема обнаружена в фоллинговом коде:
seperator = ' '
b = list()
for i in range(len(a)):
c = seperator.join(b[i])
print(c)
b = np.append(b, c)
print(b)
Ошибка Произошло исключение: индекс списка IndexError выходит за пределы диапазона , но индекс должен находиться в диапазоне.
Я надеюсь, что вы можете помочь мне с этими проблемами.