Zufero 0 Опубликовано: 14 августа, 2017 Допустим я имею 3 массива Alex = {1, 7, 48} Bob = {2, 8, 722} Carl = {3, 9, 42} И я хочу введя имя массива вывести 3 значения Но дело в том что при вводе программа получает string а мне нужно его перевести в название массива, как это сделать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
1Ridav 1 049 Опубликовано: 14 августа, 2017 При загрузке скрипта исполнитель проводит мелкую оптимизацию, все названия заменяются на ссылки. Так что надо загружать или из другого файла или придумать другой способ доступа, к примеру arr = {} arr['Alex'] = {1, 7, 48} arr['Bob'] = {2, 8, 722} name = input() print( arr[name] ) Идея в том, чтобы хранить в массиве не под индексами 1 2 3 4, а по названиям. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 14 августа, 2017 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] Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Quant 442 Опубликовано: 15 августа, 2017 (изменено) Alice = {1, 2, 3} print(_ENV["Alice"][1]) >1 Причём _ENV["Alice"] это и есть список Alice, его можно изменять, читать и прочее Alice = {1, 2, 3} _ENV["Alice"][1] = 2 print(Alice[1]) >2 Изменено 15 августа, 2017 пользователем Quant Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 155 Опубликовано: 15 августа, 2017 Alice = {1, 2, 3} print(_ENV["Alice"][1]) Пожалуй, для глобальных переменных это самый удобный вариант доступа по имени.Сложность лишь в том, что само использование глобальных переменных чаще всего нежелательно в Lua. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zufero Автор вопроса 0 Опубликовано: 16 августа, 2017 Спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Допустим я имею 3 массива
Alex = {1, 7, 48}
Bob = {2, 8, 722}
Carl = {3, 9, 42}
И я хочу введя имя массива вывести 3 значения
Но дело в том что при вводе программа получает string а мне нужно его перевести в название массива, как это сделать?
Поделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах