Python Basics

Lists & Dictionaries

Lists and Dictionaries

These two data structures are fundamental for working with AI APIs and managing conversation history.

Lists

Ordered, mutable collections:

messages = ["Hello", "How are you?", "Goodbye"]
messages.append("See you later")
first_message = messages[0]

Dictionaries

Key-value pairs — the format most AI APIs use:

message = {
    "role": "user",
    "content": "Hello!"
}

Why These Matter for AI

  • Lists store conversation history
  • Dictionaries format API messages
  • List of dicts is the standard format:
messages = [
    {"role": "system", "content": "You are helpful"},
    {"role": "user", "content": "Hi!"}
]

Try It Yourself

Run this code example to practice what you've learned.

example.py
1# Lists - conversation history
2messages = []
3
4# Add messages to history
5messages.append({"role": "system", "content": "You are helpful."})
6messages.append({"role": "user", "content": "What is Python?"})
7messages.append({"role": "assistant", "content": "Python is a programming language."})
8
9# Access messages
10print("First message:", messages[0])
11print("Last message:", messages[-1])
12print("Total messages:", len(messages))
13
14# Dictionary - API message format
15api_request = {
16 "model": "gpt-4",
17 "messages": messages,
18 "temperature": 0.7,
19 "max_tokens": 500
20}
21
22print("\nAPI Request:")
23for key, value in api_request.items():
24 print(f" {key}: {value}")
25
26# Nested access
27print("\nModel being used:", api_request["model"])
28print("Number of messages:", len(api_request["messages"]))
29
30# Safe access with .get()
31stream = api_request.get("stream", False) # Default to False
32print(f"Streaming enabled: {stream}")