Python Technical Interview Questions and Solutions

List Deduplication Techniques

Naive Iteration Method

original_data = [7, 2, 8, 2, 7, 5]
unique_results = []
for element in original_data:
    if element not in unique_results:
        unique_results.append(element)

Set Conversion Approach

distinct_set = set([4, 4, 9, 2, 9])
unique_list = list(distinct_set)

List Comprehension with Enumerate

def deduplicate(items):
    return [val for idx, val in enumerate(items) 
            if val not in items[:idx]]

Ordered Dictionary Method

from collections import OrderedDict
duplicated = [3, 3, 1, 4, 1]
result = list(OrderedDict.fromkeys(duplicated))

Python Object Type Identification

print(type(42))                   # Output: <class 'int'>
print(isinstance([], list))       # Output: True
print("text".__class__)           # Output: <class 'str'>

Regular Expression Greedy vs Lazy Matching

import re
html_content = "<div><span>Content</span></div>"

# Greedy match
print(re.findall(r'<.*>', html_content))  
# Output: ['<div><span>Content</span></div>']

# Lazy match
print(re.findall(r'<.*?>', html_content)) 
# Output: ['<div>', '<span>', '</span>', '</div>']

PEP8 Coding Standards

  • Four-space indentation
  • 79-character line limits
  • snake_case for variables/functions
  • CamelCase for class names
  • Space around operators

Django Architecture Patterns

MTV Components

  • Model: Data layer with ORM
  • Template: Presentation layer (HTML)
  • View: Business logic handler

QuerySet Operations

from django.db.models import F, Q

# F: Reference field values in queries
Product.objects.update(price=F('price') * 1.1)

# Q: Complex query conditions
User.objects.filter(Q(age__gt=30) | Q(is_staff=True))

RESTful API Principles

  • Resource-based URI design
  • HTTP methods: GET/POST/PUT/DELETE
  • Stateless interactions
  • HATEOAS linking

Django REST Framework Features

  • Serializer transformations
  • Viewsets for CRUD operations
  • Token authentication
  • Browsable API interface

Database Technologies

Redis Use Cases

  • Caching layer acceleration
  • Session storage
  • Distributed locking
  • Rate limiting
  • Leaderboard implementation

MySQL Architecture

  • Connection layer: Session handling
  • Service layer: Query parsing/optimization
  • Engine layer: InnoDB/MyISAM handlers
  • Storage layer: Filesystem persistence

InnoDB vs MyISAM

  • InnoDB: ACID transactions, row-level locking
  • MyISAM: Table-level locking, faster reads

Concurrency Patterns

Python Async IO

import asyncio

async def fetch_data():
    await asyncio.sleep(1)
    return "Processed"

async def main():
    result = await fetch_data()
    print(result)

asyncio.run(main())

Java Thread Pools

ExecutorService pool = Executors.newFixedThreadPool(4);
pool.submit(() -> System.out.println("Task executed"));
pool.shutdown();

Web Security Practices

Duplicate Form Submision Prevention

  • Backend: Token validation mechanisms
  • Frontend: Button disabling during processing
  • Database: Unique constraint enforcement

Redis Cache Strategies

  • Cache penetration: Null caching and Bloom filters
  • Cache avalanche: Expiration time randomization
  • Cache breakdown: Hotkey replicasion and mutex locks

Network Protocols

HTTP Version Evolution

  • HTTP/1.1: Persistent connections
  • HTTP/2: Binary framing and multiplexing
  • HTTP/3: QUIC protocol with UDP transport

RPC vs HTTP

  • RPC: Service contract definitions, direct method invocation
  • HTTP: Resource-oriented interactions, uniform interface

Django Middleware Components

  • SecurityMiddleware: HTTP header protection
  • SessionMiddleware: User session management
  • CsrfViewMiddleware: Cross-site request forgery prevention
  • AuthenticationMiddleware: User credential handling

Python Language Concepts

Memory Management

  • Reference counting
  • Generational garbage collection
  • Cycle detection

Execution Contexts

def outer():
    closure_var = 10
    def inner():
        return closure_var + 5
    return inner

func = outer()
print(func())  # Output: 15

Tags: python Django Redis MySQL HTTP

Posted on Sun, 30 Aug 2026 16:42:19 +0000 by Mr_jmm