Here is an ASObjC NSMutableDictionary solution:
use framework "Foundation"
use scripting additions
property || : current application
set theList to {{"Adam", "604"}, {"Eddie", "601"}, {"Susie", "602"}, {"Tim", "603"}, {"Steve", "603"}, {"Ben", "608"}, {"Dave", "607"}, {"Jimmy", 609}, {"Ive", "605"}, {"Will", "607"}}
set theDict to (||'s NSMutableDictionary)'s |dictionary|()
repeat with currPair in theList
set {currKey, currValue} to currPair's contents
(theDict's setObject:currValue forKey:currKey)
end repeat
set theRecord to theDict as record
theRecord --> {Ive:"605", Will:"607", Steve:"603", Eddie:"601", Ben:"608", Susie:"602", Tim:"603", Adam:"604", Dave:"607", Jimmy:609}
Here is a System Events Property List solution:
set theList to {{"Adam", "604"}, {"Eddie", "601"}, {"Susie", "602"}, {"Tim", "603"}, {"Steve", "603"}, {"Ben", "608"}, {"Dave", "607"}, {"Jimmy", 609}, {"Ive", "605"}, {"Will", "607"}}
tell application "System Events"
set plistFile to make new property list file with properties {contents:(make new property list item with properties {kind:record}), name:"/tmp/MyPlistFile.plist"}
repeat with currPair in theList
set {currKey, currValue} to currPair's contents
make new property list item at end of plistFile's property list items with properties {name:currKey, value:currValue}
end repeat
set theRecord to property list file "/tmp/MyPlistFile.plist"'s value
end tell
theRecord --> {Tim:"603", Will:"607", Steve:"603", Dave:"607", Adam:"604", Ben:"608", Eddie:"601", Ive:"605", Jimmy:609, Susie:"602"}
Incidentally, I assume that the integer value for “Jimmy” should be a text string? In any case, I left it as an integer to show that a value’s class will be retained in the newly formed record with either of the above techniques.