This version is out of date, covering development from v9.0.0 to v9.3.0. It is maintained here only for inbound reference links from elsewhere. It is no longer actively updated.

Jump to the current version of aTbRef

Tinderbox v9 Icon

List/Set.lookup("key")


Operator Type: 

Operator Scope of Action: 

Operator Purpose: 

Operator First Added: 

Operator Altered: 

 Function   [other Function type actions]

 List   [operators of similar scope]

 Dictionary, Set & List operations   [other Dictionary, Set & List operations operators]

 Baseline

 


List.lookup("key")

The command .lookup() It is intended for look-up tables (i.e. single dimension arrays). For the key value is supplied, the matched key's value is return. We can set up an example listing, using a List-type attribute:

$MyList = "ant:Wood ant;bee:Carder bee;cow:Jersey;dog:Labrador" 

This creates a 4 item look-up list. The first list item has two parts - the key 'ant' and its paired value 'Wood ant'. Passing a key via .lookup, returns its key:

$MyString = $MyList.lookup("cow"); → "Jersey", as list item 3's key is matched.

If a key value with no match is passed, the result is an empty string

$MyString = $MyList.lookup("pig"); → ""

But if we add a 'default' key/value pair (anywhere in the list):

$MyList = "ant:Wood ant;bee:Carder bee;cow:Jersey;dog:Labrador;default:animal" 

and re-run the last example:

$MyString = $MyList.lookup("pig"); → "animal"

There is still no match but as a default is defined, the default value of "animal" is returned.

More complex and nuanced use of .lookup() is described in the discussion of look-up tables.

Dictionary vs. Lookup

The newer Dictionary data-type offers a more efficient and feature rich way of working with lookup lists.

Legacy use (pre v8)

For look-up tables .lookup() is preferred to the older .at() for clarity, and to avoid ambiguity when the argument is numeric. Using the example list as above:

$MyString = $MyList.at(3); → "dog:Labrador", the whole fourth element of the list (do not forget N is counted from zero).

$MyString = $MyList.lookup(3) → "animal", the lookup result for key value 5 which doesn't exist, so we get the default.