Называть ранее неопределенные имена переменных из значения словаря?

Ваша интуиция в основном верна: вы используете оператор квадратных скобок [] для доступа к элементу в индексированной позиции в коллекции или последовательности. Таким образом,

  • disectedString[0] означает «первый элемент disectedString»;
  • temp[0] означает «первый элемент temp»;

То, что вы перепутали, - это типы, как объяснили комментаторы и ответ @ demogorgon.net.

Теперь, с современным C ++, вы можете «играть немой» и не объявлять то, что знаете типы будут:

std::string disectedString[5];
disectedString[0] = "011001";
auto temp = disectedString[0];
auto print = temp[0];

Обратите внимание на использование auto вместо определенного имени типа. Это будет работать так, как вам бы хотелось. Затем вы можете использовать use print и делать, например:

std::cout << print;

, и это выведет 0.


Кстати, я считаю, должен пересмотреть ваш выбор имен:

  • Интуитивно, print следует ссылаться на функцию или метод, который печатает вещи; Я бы предложил first_character или char_to_print или просто c, если вы хотите быть краткими.
  • temp больше не является временной переменной, чем, скажем, print.
  • Лучше избегать имен переменных, которые содержат имя типа, хотя иногда мы иногда прибегаем к этому. В частности, вы используете слово «string» в именах переменных; вероятно, не очень хорошая идея.
  • Ваша переменная disectedString не является строкой, это массив строк, что запутывает.
1
задан jjThomas 18 January 2019 в 18:39
поделиться

1 ответ

Вам не нужно иметь отдельную переменную, если у вас есть данные в словаре.

files = ['file1', 'file2', 'file3']  # list of file names to open
fileMapDict = {}  # empty dictionary to store the data in

for file in files:  
    with open(file, 'r') as data:
        fileMapDict[file] = json.load(data)  # write data to dictionary with the file name as the key
0
ответ дан juanpa.arrivillaga 18 January 2019 в 18:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: