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

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

Вопрос

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

Alex = {1, 7, 48}

Bob = {2, 8, 722}

Carl = {3, 9, 42}

 

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

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

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


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

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

  • 0

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

 

arr = {}

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

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

 

name = input()

print( arr[name] )

 

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

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


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


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]

 

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


Ссылка на сообщение
Поделиться на других сайтах
  • 0
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

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


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

 

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

 

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

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

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


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

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

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

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

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

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

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

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

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


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