Перейти к содержимому
  • 0
Zufero

Перевод стринга в название массива

Вопрос

Допустим я имею 3 массива

Alex = {1, 7, 48}

Bob = {2, 8, 722}

Carl = {3, 9, 42}

 

И я хочу введя имя массива вывести 3 значения

Но дело в том что при вводе программа получает string а мне нужно его перевести в название массива, как это сделать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендуемые сообщения

При загрузке скрипта исполнитель проводит мелкую оптимизацию, все названия заменяются на ссылки. Так что надо загружать или из другого файла или придумать другой способ доступа, к примеру

 

arr = {}

arr['Alex'] = {1, 7, 48}

arr['Bob'] = {2, 8, 722}

 

name = input()

print( arr[name] )

 

Идея в том, чтобы хранить в массиве не под индексами 1 2 3 4, а по названиям.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах


users = {
alex = {5, 9, true},
bob = {5, 9, true},
piter = {5, 9, false}
}


-- добавить что-то в массив
users.lena = {5, 9, true}
-- или так, если имя с пробелами
users['vika name'] = {5, 9, true}

--изменить что-то в массиве
users.lena[1] = 15


-- получить что-то из массива:
a = users['lena'][1] --5
b = users['vika name'][3] --true
c = users[name:string][id]

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alice = {1, 2, 3}
print(_ENV["Alice"][1])

>1

 

Причём _ENV["Alice"] это и есть список Alice, его можно изменять, читать и прочее

Alice = {1, 2, 3}
_ENV["Alice"][1] = 2
print(Alice[1])

>2

Изменено пользователем Quant

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

Alice = {1, 2, 3}
print(_ENV["Alice"][1])

 

Пожалуй, для глобальных переменных это самый удобный вариант доступа по имени.

Сложность лишь в том, что само использование глобальных переменных чаще всего нежелательно в Lua.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...