Guide to High School Computer Science
  • 💻Introduction
    • windows & Python Development
    • macOS & Python Development
    • Visual Studio Code Settings
    • Set up Github
    • Author Page
  • 🧠Prerequisite Skills
    • Keyboard Typing
    • Files & Directories
    • Use of Command Line
    • Git & GitHub
    • Markdown
    • Starting Your Python Project
  • 🐍Python Programming
    • 🍎Python Basics
      • What is Python?
      • Procedural Programming & Programming Paradigms
      • String Formatting
      • Data Types
      • Input & Output to Console
      • Working with Numbers
      • Useful Built-in Functions
      • Math & Random Module
      • Boolean Data Object
      • Comparison, Logical, and Membership Operators
      • If Statements
      • Binary Decisions
      • Multiple Decisions
      • Nested Conditions
      • [EXTRA] Bitwise Operators
      • [EXTRA] Python Style Guide
    • ⏮️Iterations
      • Introduction to While Loops
      • Infinite Loop
      • Controlling Your While Loops
      • Introduction to For Loops
      • For Loops w/ Numeric Sequences
      • For Loops w/ Strings & Lists
      • Iterable Functions w/ For Loops
    • 📦Collections
      • Strings
        • String Basics
        • String Indexing
        • String Slicing
        • String Operators & Functions
        • Basic String Methods
        • String Methods Extended
        • String Methods Document
      • Tuples & Lists
        • Tuples
        • List Basics
        • List are Mutable
        • Adding Items to a List
        • Removing Items from a List
        • Search & Reverse a List
        • List Comprehension
        • List Methods Document
      • Sets
      • Dictionary
      • How to Store Multiple Data Items
    • 💡Defining Functions
      • Functions
      • print() vs return
      • Pre-determined Arguments
      • Nested Functions
      • Map & Filter
      • [Extra] Dynamic Arguments
    • 💾File I/O
      • How to Save Text to an External File
      • Reading CSV in Python
      • Reading JSON in Python
    • 🔨Basic Python Projects
      • Basic Calculator
        • Improving the calculator
        • Exercise Set 1
        • Exercise Set 2
        • 💎Streamlit Application #1
      • Basic Password Generator
        • Exercise Set 3
        • Exercises Related to Math
        • 💎Streamlit Application #2
      • A To-Do Task List
    • ⏳Introduction to Algorithmic Thinking
      • Big-O Notation
      • Basic Algorithms
        • Linear Search
        • Binary Search
        • Basic Sorting Algorithms
      • Recursion
      • Brute Force Algorithms
      • Greedy Algorithm
        • Time on Task (CCC 2013 J4)
        • Dijkstra’s Algorithm
      • Divide and Conquer
        • Merge Sort
      • Dynamic Programming
    • 🤯Object Oriented Programming
      • Class & Objects (Definitions)
      • OOP in Python
      • Encapsulation
      • Polymorphism
      • Inheritance & Overriding
      • Override Magic Methods
      • Case Study: 2D Vectors
      • Case Study: Deck of Cards
      • Exercise
      • Abstract Data Types
      • Case Study: Static 1D Array From Java
    • Competitive Programming
      • Is This Sum Possible?
        • Is the dataset sorted?
        • Searching for a value
        • Determine if the difference between an integer from the array and the target value exists
        • Sorting Algorithms
        • Using Two Pointers
      • Two Sum - LeetCode
        • Generate all possible pairs of values
        • Subtract each value from the target, see if the difference exists in the list
      • Longest Common Prefix - LeetCode
        • Compare all possible prefixes
        • Create the longest common prefix with the direct neighbour
      • Length of Last Word - LeetCode
        • Compare all possible prefixes
      • Where can I go from one point to another?
      • Sample Outline
    • IB Recipe Book
  • 💾Python & Databases
    • Intro to Databases & Data Modeling
      • Common Data Types in SQL
      • Introduction to ERDs
      • Primary Keys and Foreign Keys
      • Database Normalization
    • What is SQL?
      • Getting Started
      • SELECT Queries
        • Selection with Conditions
        • Selection with Fuzziness
        • Selection and Sorting in Order
        • Selection without Duplicates
        • Selection with Limited Number of Outputs
      • AGGREGATE Queries
        • Counting Rows
        • Sum, Average, Min/Max Queries
        • Working with Aggregate Queries
        • Power of using Groups
        • Exercise
      • Interacting with Multiple Table
      • Inserting Data
      • External Resource
  • ☕Java Essentials
    • Basics
      • Starting Java
      • Data & Variables
      • Handling User Inputs & Type Conversion
      • Arithmetic
      • IPO Model
      • Basic Built-in Methods
      • Exercise Questions
    • Conditionals
      • Boolean Operators
      • Compare Strings
      • If Statements
      • If Else Statements
      • Making Multiple Decisions
      • Using Switch
      • Flowchart Symbols
      • Exercise Questions
    • Iterations
      • While Loops
      • For Loop
      • Exercises
    • Java Type Casting
    • Strings
      • Common String Practices
      • String Formatting
      • Java Special Characters
    • Collection
      • Arrays
      • For Each Loop
      • ArrayList
      • Exercise Questions
    • Static Methods
      • (Aside) Clearing your Console
    • Randomness in Java
    • Delayed Output in Java
    • Java Output Formatting
    • Java Style Guide
  • 🛠️JavaScript Programming
    • Our Programming Editor & Workflow
      • Hello, world!
      • Commenting & Variables
      • Data in JavaScript
      • Operators
      • String Formatting
      • Getting User Input
    • JavaScript Exercise Set 1
    • Making Decisions
      • Comparing Values
      • Combining Boolean Comparisons
      • Creating Branches
    • JavaScript Exercise Set 2
    • While Loops
      • Infinite While Loop
      • While Loops and Numbers
      • While Loops and Flags
      • While loops w/ Strings
    • JavaScript Exercise Set 3
    • Subprograms & Functions
      • Creating a Function in JavaScript
      • Function with Input and Assignable Output
    • JavaScript Exercise Set 4
  • 💾Topics in CS
    • Computer Environments & Systems
      • Computer Components
        • In-depth Explanations
      • File Maintenance
      • Computer & Safety
      • Software Development
      • Bits & Binary
    • Careers related to Computer Science
    • Postsecondary Opportunities
Powered by GitBook
On this page
  • Scenario
  • Option 1 - Using lists
  • Option 2 - Using sets
  • Option 3 - Countable Unique Items
  1. Python Programming
  2. Collections

How to Store Multiple Data Items

PreviousDictionaryNextDefining Functions

Last updated 7 months ago

Scenario

As a programmer, there are instances where you would need a single variable to hold multiple values. There are many answers to this situation because there are different designed solutions to different scenarios of this problem.

There are many built-in data types (list, set, and dictionary) that can help us that best suits the given situation.

We will be looking at 3 basic practices.

Where is this data stored?

In this chapter, our multiple items are temporarily stored within our program. When our program is done executing our code, we cannot have access to our data.

This is called non-persistent storage.

If we do not need to remember our previous state of our program, we often store data (values stored in variables and such) into the RAM of our computer. The RAM allows a very quick retrieval of data when a program is running.

If we want to save data from our program to be accessible without the program or we want to remember what happened in the previous execution, we would need to create an external file or create and use a database.

# Example of a list data

example = ['Marshall', 'Park', 4, ['Freya', 'Goji'], 'White']

A list in python can contain any type of data.

Each item added will have a numeric index (starting at 0).

  • example[0] will contain a String data of 'Marshall'

  • example[3] will contain a List data containing ['Freya,' 'Goji']

# Example being modified

example = ['Marshall', 'Park', 4, ['Freya', 'Goji'], 'White']

example[2] = 5 # now example is: ['Marshall', 'Park', 5, ['Freya', 'Goji'], 'White']

Lists are built-in data type in Python that offers strong set of operations and methods to provide a way to have data collection.

Main Reason: To check if some item exists, checking against a set is faster than checking against a list

# Example of a set

allergies = {'Dairy', 'Shellfish', 'Peanuts'}

list_allergies = ['Dairy', 'Shellfish', 'Peanuts']

print("Is the person allergic to dust?")
print("Dust" in allergies) # Outputs: False
print("Dust" in list_allergies) # Outputs: False

The code above currently has two collection of data: a set and a list.

It is currently trying to see if the person is allergic to dust given the two collections with same item values.

With respect to performance (speed of the program), the set based collection will outperform the list.

Reasoning:

  • Because each individual item in a set is unique, Python generates an integer address for each item.

  • When we are checking if dust is an item in the set of of allergies by executing: "Dust" in allergies, Python would hash the value of dust and try to access the location of it from allergies. Since that address is not part of the set, it can immediately return a value of False

  • When dust is being searched through the list, Python starts the search from the beginning of the list, and it compares every item against dust until found. If it is never found, then we reach the end of the list to return False

Therefore, a set would need to do a single hashing operation to see if that value is in the set or not. However, a list would have to check every single value against the searching value to see if it exists in the list. As the size of the list grows, the number of comparisons Python needs to do would be far larger than the number of comparisons a set would have done.

Option 3 - Countable Unique Items

For this situation, let's look at an example first.

# Unique, but countable

inventory = {
    'pencil' : 2,
    'pen' : 1,
    'erasor' : 1
    'white-out' : 1,
}

A dictionary will always store two types of information for each item in its collection.

  1. Address (commonly known as "key") -> Dictionary allows us to use immutable customized hashing for our items in the dictionary to act as an index for dictionary items.

  2. Value -> Dictionary allows us to associate any type of data located at our custom address

In Python programming, dictionaries are a way to create a key+value pairs of data.

Option 1 - Using

Option 2 - Using

Sets also cannot contain

When you need an implementation of a so that you can perform ()

This is the reason that sets do not have duplicates; duplicates would generate the same integer address. This concept of integer addressing is called .

The code above is an example of using a .

🐍
📦
lists
sets
mutable data types
mathematical set
set operations
Python documentation link
hashing
dictionary