2013-04-29 4 views
2

Я начал много раз называть lua, но я не могу в жизни понять это.Lua, Tables: объединить значения повторяющихся ключей и удалить дубликаты

Скажем, у меня есть строка, которая выглядит следующим образом:

з = «а = ха = уь = ZA = х»

Я хочу, чтобы удалить все дубликаты и объединить значения дубликатов ключей в стол, так что я получаю:

t = { 
a = {x,y}, 
b = {z}, 
} 

Я обдумывал это слишком долго. Любая помощь приветствуется!

ответ

2

Попробуйте это:

s="a=x a=y b=z a=x" 

s=s.." " 
t={} 
for k,v in s:gmatch("(.-)=(.-)%s+") do 
     if t[k]==nil then t[k]={} end 
     t[k][v]=true 
end 

for k,v in pairs(t) do 
     for z in pairs(v) do print(k,z) end 
end 
+0

Вы делаете это, кажется, так до смешного легко. Кажется, я делаю то, что хочу, - теперь я попытаюсь сломать его, чтобы лучше понять. Большое спасибо! – Easypeasy

+0

Быстрый вопрос: (Я искал) Как бы я начал печатать вложенное значение из этой таблицы. Например, 'print (t.a [1])' не работает. – Easypeasy

+0

@Easypeasy, это именно то, что 'для z в парах (v) делает print (k, z) end' делает. – lhf

Смежные вопросы