GreenB
GreenB

Reputation: 69

A list of data structures in Python

I am pretty new to Python (coming from a Java background) so was wondering if someone would have any advice on a data structure design question. I need to create a data structure with default values that would look something like this:

[
(Name=”name1”,  {id=1, val1=”val1”} ),
(Name=”name2”,  {id=2, val1=”val2”} )
]

i.e a list of tuples where each tuple consists of one string value (Name) and a dictionary of values.

The first piece of functionality I need is to be able to add to or override the above data structure with additional details e.g:

[
(Name=”name2”,  {id=2, val1=”new value”} )  ,
(Name=”name2”,  {id=3, val1=”another value”} )  ,
(Name=”name3”,  {id=3, val1=”val3”} )
]

Which would ultimately result in a final data structure that looks like this:

[
(Name=”name1”,  {id=1, val1=”val1”} ),
(Name=”name2”,  {id=2, val1=”new value”} )  ,
(Name=”name2”,  {id=3, val1=”another value”} )  ,
(Name=”name3”,  {id=3, val1=”val3”} )
]

The second piece of functionality I need is to be able to access each tuple in the list according to the id value in the dictionary i.e

Get me tuple where name = “name2” and id=”3” .

Could anybody give me their opinions on how best this could be implemented in Python?

Thanks!

Upvotes: 4

Views: 581

Answers (2)

myeeshen
myeeshen

Reputation: 114

The namedtuple is closest to what you wrote but as others have said, there may be better designs for what you want.

Upvotes: 1

DOSHI
DOSHI

Reputation: 442

You should try using dictionaries may be.

A dictionary is mutable and is another container type that can store any number of Python objects, including other container types. Dictionaries consist of pairs (called items) of keys and their corresponding values.

Python dictionaries are also known as associative arrays or hash tables. The general syntax of a dictionary is as follows:

dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

You can create dictionary in the following way as well:

dict1 = { 'abc': 456 };
dict2 = { 'abc': 123, 98.6: 37 };

Each key is separated from its value by a colon (:), the items are separated by commas, and the whole thing is enclosed in curly braces. An empty dictionary without any items is written with just two curly braces, like this: {}.

Keys are unique within a dictionary while values may not be. The values of a dictionary can be of any type, but the keys must be of an immutable data type such as strings, numbers, or tuples.

Accessing Values in Dictionary:

To access dictionary elements, you can use the familiar square brackets along with the key to obtain its value. Following is a simple example:

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};

print "dict['Name']: ", dict['Name'];
print "dict['Age']: ", dict['Age'];
When the above code is executed, it produces the following result:

dict['Name']:  Zara
dict['Age']:  7

Source: http://www.tutorialspoint.com/python/python_dictionary.htm

Upvotes: 0

Related Questions