Associative array/Creation: Difference between revisions
Content added Content deleted
m (Creating Hash Structure moved to Creating an Associative Array: "Associative Array" is a more generic name.) |
m (Added subsections to Perl. Added Array Operation template) |
||
Line 1: | Line 1: | ||
{{task}} |
{{task}} |
||
{{Array operation}} |
|||
In this task, the goal is to create an [[associative array]]. |
In this task, the goal is to create an [[associative array]]. |
||
Line 6: | Line 7: | ||
'''Interpeter:''' Perl |
'''Interpeter:''' Perl |
||
Defining a Hash |
===Defining a Hash=== |
||
# using => key does not need to be quoted unless it contains special chars |
# using => key does not need to be quoted unless it contains special chars |
||
Line 24: | Line 25: | ||
); |
); |
||
Defining a HashRef |
===Defining a HashRef=== |
||
my $hashref = { |
my $hashref = { |
||
Line 33: | Line 34: | ||
} |
} |
||
Using a Hash |
===Using a Hash=== |
||
print $hash{'key1'}; |
print $hash{'key1'}; |
||
Line 41: | Line 42: | ||
@hash{'key1', 'three'} = ('val1', -238.83); |
@hash{'key1', 'three'} = ('val1', -238.83); |
||
Using a HashRef |
===Using a HashRef=== |
||
print $hash->{'key1'}; |
print $hash->{'key1'}; |
||
Line 92: | Line 93: | ||
for key, value in d.iteritems(): |
for key, value in d.iteritems(): |
||
print key, value |
print key, value |
||
Create a generic mapping function that applys a callback to elements in a list: |
Revision as of 14:15, 23 January 2007
Associative array/Creation
You are encouraged to solve this task according to the task description, using any language you may know.
You are encouraged to solve this task according to the task description, using any language you may know.
In this task, the goal is to create an associative array.
Perl
Interpeter: Perl
Defining a Hash
# using => key does not need to be quoted unless it contains special chars my %hash = ( key1 => 'val1', 'key-2' => 2, three => -238.83, 4 => 'val3', ); # using , both key and value need to be quoted if containing something non-numeric in nature my %hash = ( 'key1', 'val1', 'key-2', 2, 'three', -238.83, 4, 'val3', );
Defining a HashRef
my $hashref = { key1 => 'val1', 'key-2' => 2, three => -238.83, 4 => 'val3', }
Using a Hash
print $hash{'key1'}; $hash{'key1'} = 'val1'; @hash{'key1', 'three'} = ('val1', -238.83);
Using a HashRef
print $hash->{'key1'}; $hash->{'key1'} = 'val1'; @hash->{'key1', 'three'} = ('val1', -238.83);
Ruby
#a hash object that returns nil for unknown keys hash={} hash[666]='devil' hash[777] # => nil hash[666] # => 'devil'
#a hash object that returns 'unknown key' for unknown keys hash=Hash.new('unknown key') hash[666]='devil' hash[777] # => 'unknown key' hash[666] # => 'devil'
#a hash object that returns "unknown key #{key}" for unknown keys hash=Hash.new{|h,k|h[k]="unknown key #{k}"} hash[666]='devil' hash[777] # => 'unknown key 777' hash[666] # => 'devil'
Python
In Python, hashes are called dictionaries.
# empty dictionary d = {} d['spam'] = 1 d['eggs'] = 2
# dictionaries with two keys d1 = {'spam': 1, 'eggs': 2} d2 = dict(spam=1, eggs=2)
# dictionaries from tuple list d1 = dict([('spam', 1), ('eggs', 2)]) d2 = dict(zip(['spam', 'eggs'], [1, 2]))
# iterating over keys for key in d: print key, d[key]
# iterating over (key, value) pairs for key, value in d.iteritems(): print key, value
Create a generic mapping function that applys a callback to elements in a list: