Ваша интуиция в основном верна: вы используете оператор квадратных скобок []
для доступа к элементу в индексированной позиции в коллекции или последовательности. Таким образом,
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
. disectedString
не является строкой, это массив строк, что запутывает. Вам не нужно иметь отдельную переменную, если у вас есть данные в словаре.
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