Изменение нечислового списка на числовое?

Они определены ранее.

def get_service_code(service): return str(service[0]) service_106_data = filter_routes(bus_stations, "106") service_106 = make_service(service_106_data, "106") #print(get_service_code(service_106)) --> should return 106 

bus_stations – это txt-файл, который содержит список чисел, подобных этому

 106,1,1,43009 106,1,2,43179 . . . 106,2,1,03239 106,2,2,03211 . . . 106,2,50,43171 106,2,51,43009 

Затем это также определено ранее

 def get_route(service, direction): return str(service[int(direction)][0]) print(get_route(service_106, '1')) 

должен вернуть это

 ['43009', '43179', '43189', '43619', '43629', '42319', '28109', '28189', '28019', '20109', '17189', '17179', '17169', '17159', '19049', '19039', '19029', '19019', '11199', '11189', '11401', '11239', '11229', '11219', '11209', '13029', '13019', '09149', '09159', '09169', '09179', '09048', '09038', '08138', '08057', '08069', '04179', '02049', 'E0200', '02151', '02161', '02171', '03509', '03519', '03539', '03129', '03218', '03219'] 

Предположим теперь, что направление «1» заменено на нечисловое число, такое как «A4» , как мне написать свой код так, что «A4» превращен в «1» ? Следующий код не будет работать для «A4», но он работает для «1»,

 def make_service(service_data, service_code): routes = [] curr_route = [] first = service_data[0] #('106', 'A4', '1', '43009') curr_dir = first[1] # 'A4' --> #how do I change this to '1' ? #additional line no. 1 for entry in service_data: direction = entry[1] #A4 stop = entry[3] #43009 if direction == curr_dir: curr_route.append(stop) #[43009] else: routes.append(curr_route) #[[]] curr_route = [stop] #[43009] curr_dir = direction #A4 # addition no.2 routes.append(curr_route) #[43009] #modification return (service_code, routes) #("106", [43009]) service_106 = make_service(service_106_data, "106") # for eg make_service(('106', 'A4', '1', '43009') , "106")) 

print(get_service_code((service_106))) -> ожидаемый доход – 106

One Solution collect form web for “Изменение нечислового списка на числовое?”

Вы можете назначить идентификационный номер для каждого уникального элемента в вашем корневом каталоге service_data или в списке, назначив каждый элемент в качестве ключа в словаре dict_. Функция ниже, to_IDS установит все элементы в service_data с номером ID в словаре dict_.

 service_data = ('106', 'A4', '1', '43009') dict_ = {} def to_IDS(service_data, dict_): ids_from_service_data = [(dict_.setdefault(i, len(dict_)))for i in service_data] return ids_from_service_data, dict_ print to_IDS(service_data, dict_) Output: [0, 1, 2, 3], {'1': 2, '43009': 3, '106': 0, 'A4': 1}) Alternative solution; service_data = ['106', 'A4', '1', '43009'] service_code = None def make_service(service_data, service_code): routes = [] curr_route = [] first = service_data[0] # will be 106, corresponding to index 0('106') in service_data service_data[1] = 1 # 'A4' --># changes value on index 1 (A4) to value 1 curr_dir = service_data[1] # curr_dir is index 1(A4 in service_data #additional line no. 1 direction = service_data[1] #direction is service_data1 stop = service_data[-1] # ends at last position in list, -1 if direction == curr_dir: curr_route.append(stop) #[43009] print curr_route else: routes.append(curr_route) #[[]] curr_route = [stop] #[43009] curr_dir = direction #A4 # addition no.2 routes.append(curr_route) service_code = service_data[0] return (service_code, routes) #("106", [43009]) print make_service(service_data, service_code) 
  • Список сглаживания в python
  • Что касается списка python со ссылкой
  • Есть ли способ использовать два условия if в списках в python
  • найдите элемент первой последовательности, соответствующий критерию
  • Python: удаление элемента списка при повторении списка
  • Список списков в списке кортежей, переупорядоченных
  • Поиск общих элементов из двух списков списков
  • Удалите все элементы, которые встречаются в одном списке из другого
  • TypeError: только целые массивы с одним элементом могут быть преобразованы в индекс 3
  • Как вставить содержимое одного списка в другой
  • Найти ближайшие индексы для одного массива против всех значений в другом массиве - Python / NumPy
  •  
    Interesting Posts for Van-Lav

    Вставка фигуры matplotlib внутри панели WxPython

    Django: динамически добавлять приложения в качестве плагина, автоматически создавать URL-адреса и другие настройки

    win32com + Excel + Django + Apache = проблема

    Есть ли библиотека python для редактирования файлов msword doc?

    Предложения по get_text () в BeautifulSoup

    Получить последние n строк файла с Python, похожие на хвост

    Индекс относительной силы в пандах python

    Как использовать список (или кортеж) как значение форматирования строки

    Использовать произвольные объекты wx в качестве столбца в wx.ListCtrl

    как я могу отслеживать, сколько пользователей посещает мой сайт

    Каков наилучший способ загрузки больших списков JSON в Python?

    Не удалось отправить служебную нагрузку и команду mdm на устройство

    Какова связь между временем процессора, измеряемым профилировщиком Python, и реальным, временем пользователя и sys?

    Мезонин – Не могу загрузить css и js в Heroku

    Написание информации об авторских правах в коде python

    Python - лучший язык программирования в мире.