【发布时间】:2017-10-12 05:51:08
【问题描述】:
我有这个文件:
Bulgaria = Bulgarian
Croatia = Croatian
Austria = Croatian
Czech Republic = Czech
Slovakia = Czech
Denmark = Danish
Germany = Danish
Belgium = Dutch
Netherlands = Dutch
Ireland = English
Malta = English
United Kingdom = English
Estonia = Estonian
Finland = Finnish
Belgium = French
France = French
Italy = French
Luxembourg = French
Austria = German
Belgium = German
Denmark = German
Germany = German
Italy = German
Luxembourg = German
Cyprus = Greek
Greece = Greek
Austria = Hungarian
Hungary = Hungarian
Romania = Hungarian
Slovakia = Hungarian
Slovenia = Hungarian
Ireland = Irish
United Kingdom = Irish
Croatia = Italian
Italy = Italian
Slovenia = Italian
Latvia = Latvian
Lithuania = Lithuanian
Malta = Maltese
Poland = Polish
Portugal = Portuguese
Romania = Romanian
Slovakia = Slovak
Czech Republic = Slovak
Hungary = Slovak
Slovenia = Slovenian
Austria = Slovenian
Hungary = Slovenian
Italy = Slovenian
Spain = Spanish
Sweden = Swedish
Finland = Swedish
在 python 中,我使用这段代码创建了一个关联数组,其中一个字符串作为键,一个数组作为值:
from collections import defaultdict
mydata = defaultdict(list)
myfile = open("myfile", "r")
for line in myfile:
country, language = line.rstrip('\n').split(" = ")
mydata[country].append(language)
它创建了一个这样的数据结构:
'Bulgaria' = ['Bulgarian']
'Croatia' = ['Croatian']
'Austria' = ['Croatian', 'German', 'Hungarian', 'Slovenian']
# and so on
Perl 和 Ruby 有类似的关联数组。 Go 可以使用地图和append() 创建它。
我在 Pascal 中看到很多对关联数组的引用,但我找不到使用 数组作为值的示例。
我正在使用 FreePascal,我想避免使用外部库。你能给我举个例子吗?
PS:我知道这看起来像家庭作业,但事实并非如此。
【问题讨论】:
-
在
fgl单元中查看TFPGMap。键是字符串,值是动态的array of string。向这样的数组添加数据与在 Python 中不同,它们的工作方式相似。
标签: arrays associative-array pascal freepascal