@DrPalmer

Как передать часть массива в переменную?

Могу ли я при такой записи y, parts[0] в итоге передать в отдельную переменную (для примера поставил service = y.parts[0]) ? или как лучше тогда написать? не нашел в инете вменяемого ответа что-то...
def get_next_hostname(hostname):
    for vm in asl_vms:
        hostname = vm['name']
        parts = hostname.split('-')
        number = int(parts[2].split('.')[0])
        y = '{}-{}-{}.node.eu.consul'.format(parts[0], parts[1], number + 6)
        service = y.parts[0]
    return y, service

Помогите(
  • Вопрос задан
  • 96 просмотров
Решения вопроса 1
drygdryg
@drygdryg
Python-разработчик
y — это строка, у неё нет атрибута parts.
Но если вы имели в виду список parts, то можете.
Также в качестве альтернативного варианта можно создать сразу несколько переменных для каждого элемента списка parts, используя т.н. распаковку, переменная parts в таком случае не понадобится:
def get_next_hostname(hostname):
    for vm in asl_vms:
        hostname = vm['name']
        service, x, name = hostname.split('-')
        number = int(name.split('.')[0])
        y = '{}-{}-{}.node.eu.consul'.format(service, x, number + 6)
    return y, service

Но обратите внимание, что такой вариант распаковки hostname.split('-') вы можете использовать только в том случае, если уверенны, что в результате разбиения строки получается список именно из трёх элементов — не больше и не меньше.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы