Aplicações do Mundo Real
Agora que você aprendeu diferentes técnicas para encontrar os N elementos superiores em uma lista Python, vamos explorar algumas aplicações do mundo real. Nesta etapa, você criará um script mais abrangente que aplica esses conceitos a cenários práticos.
Crie um novo arquivo chamado practical_applications.py no diretório do projeto e adicione o seguinte código:
## Aplicações do mundo real de encontrar os N elementos superiores
import heapq
from datetime import datetime
print("APLICAÇÕES PRÁTICAS DE ENCONTRAR OS N ELEMENTOS SUPERIORES EM LISTAS PYTHON\n")
## Aplicação 1: E-commerce - Analisando Vendas de Produtos
print("APLICAÇÃO 1: E-COMMERCE - ANALISANDO VENDAS DE PRODUTOS")
print("==================================================")
## Dados de exemplo de vendas de produtos (product_id, product_name, units_sold, price)
product_sales = [
(101, "Smartphone X", 1250, 899.99),
(102, "Wireless Earbuds", 2100, 129.99),
(103, "Laptop Pro", 890, 1299.99),
(104, "Smart Watch", 1450, 249.99),
(105, "Tablet Mini", 1050, 399.99),
(106, "Bluetooth Speaker", 1750, 79.99),
(107, "Gaming Console", 780, 499.99),
(108, "Digital Camera", 550, 349.99),
(109, "Power Bank", 1900, 49.99),
(110, "Fitness Tracker", 1350, 129.99)
]
## Encontre os 3 produtos principais por unidades vendidas
top_sold_products = heapq.nlargest(3, product_sales, key=lambda x: x[2])
print("\nTop 3 Produtos Mais Vendidos (por unidades vendidas):")
for product in top_sold_products:
print(f" {product[1]}: {product[2]} unidades vendidas a ${product[3]}")
## Encontre os 3 produtos principais por receita (unidades_vendidas * preço)
top_revenue_products = heapq.nlargest(3, product_sales, key=lambda x: x[2] * x[3])
print("\nTop 3 Produtos por Receita:")
for product in top_revenue_products:
revenue = product[2] * product[3]
print(f" {product[1]}: ${revenue:,.2f} de receita ({product[2]} unidades a ${product[3]})")
## Aplicação 2: Análise de Dados - Monitoramento de Temperatura
print("\n\nAPLICAÇÃO 2: ANÁLISE DE DADOS - MONITORAMENTO DE TEMPERATURA")
print("====================================================")
## Dados de exemplo de temperatura (data, cidade, temperatura)
temperature_data = [
("2023-06-15", "New York", 32.5),
("2023-06-15", "Los Angeles", 28.3),
("2023-06-15", "Chicago", 30.1),
("2023-06-15", "Houston", 35.7),
("2023-06-15", "Phoenix", 40.2),
("2023-06-15", "Miami", 33.8),
("2023-06-15", "Denver", 29.6),
("2023-06-15", "Seattle", 22.4),
("2023-06-15", "Boston", 27.9),
("2023-06-15", "Atlanta", 31.5)
]
## Encontre as cidades com as temperaturas mais altas
hottest_cities = heapq.nlargest(3, temperature_data, key=lambda x: x[2])
print("\nTop 3 Cidades Mais Quentes:")
for city_data in hottest_cities:
print(f" {city_data[1]}: {city_data[2]}°C")
## Encontre as cidades com as temperaturas mais baixas
coldest_cities = heapq.nsmallest(3, temperature_data, key=lambda x: x[2])
print("\nTop 3 Cidades Mais Frias:")
for city_data in coldest_cities:
print(f" {city_data[1]}: {city_data[2]}°C")
## Aplicação 3: Mídias Sociais - Engajamento do Usuário
print("\n\nAPLICAÇÃO 3: MÍDIAS SOCIAIS - ENGAJAMENTO DO USUÁRIO")
print("=============================================")
## Dados de exemplo de postagens de mídia social (post_id, title, likes, comments, shares, timestamp)
posts = [
(1001, "Breaking News: Major Announcement", 3500, 420, 1200, datetime(2023, 6, 10, 12, 30)),
(1002, "Product Review: Latest Gadget", 2200, 380, 900, datetime(2023, 6, 11, 15, 45)),
(1003, "Tutorial: Python Programming", 1800, 650, 750, datetime(2023, 6, 12, 9, 15)),
(1004, "Travel Tips for Summer Vacation", 2700, 320, 1100, datetime(2023, 6, 13, 18, 20)),
(1005, "Recipe: Delicious Desserts", 3100, 450, 1500, datetime(2023, 6, 14, 11, 10)),
(1006, "Interview with Celebrity", 4200, 580, 2200, datetime(2023, 6, 15, 14, 25)),
(1007, "Health and Fitness Guide", 1500, 280, 600, datetime(2023, 6, 16, 8, 40)),
(1008, "Movie Review: Latest Blockbuster", 2900, 410, 950, datetime(2023, 6, 17, 20, 30)),
(1009, "Tech News: Industry Updates", 2000, 300, 800, datetime(2023, 6, 18, 13, 15)),
(1010, "DIY Home Improvement Projects", 1700, 520, 700, datetime(2023, 6, 19, 16, 50))
]
## Defina uma função para calcular a pontuação de engajamento (soma ponderada de curtidas, comentários, compartilhamentos)
def engagement_score(post):
return post[2] + (post[3] * 2) + (post[4] * 3) ## curtidas + (comentários * 2) + (compartilhamentos * 3)
## Encontre as 3 postagens principais por pontuação de engajamento
top_engaging_posts = heapq.nlargest(3, posts, key=engagement_score)
print("\nTop 3 Postagens Mais Envolventes:")
for post in top_engaging_posts:
score = engagement_score(post)
print(f" Post ID: {post[0]}")
print(f" Title: {post[1]}")
print(f" Engagement Score: {score}")
print(f" (Curtidas: {post[2]}, Comentários: {post[3]}, Compartilhamentos: {post[4]})")
print(f" Postado em: {post[5].strftime('%Y-%m-%d %H:%M')}")
print()
## Encontre as 3 postagens principais por curtidas
top_liked_posts = heapq.nlargest(3, posts, key=lambda x: x[2])
print("Top 3 Postagens Mais Curtidas:")
for post in top_liked_posts:
print(f" {post[1]}: {post[2]} curtidas")
## Encontre as 3 postagens principais por comentários
top_commented_posts = heapq.nlargest(3, posts, key=lambda x: x[3])
print("\nTop 3 Postagens Mais Comentadas:")
for post in top_commented_posts:
print(f" {post[1]}: {post[3]} comentários")
Execute o script para ver essas aplicações práticas:
python3 practical_applications.py
Você deve ver uma saída detalhada mostrando como encontrar os N elementos superiores pode ser aplicado em cenários do mundo real:
APLICAÇÕES PRÁTICAS DE ENCONTRAR OS N ELEMENTOS SUPERIORES EM LISTAS PYTHON
APLICAÇÃO 1: E-COMMERCE - ANALISANDO VENDAS DE PRODUTOS
==================================================
Top 3 Produtos Mais Vendidos (por unidades vendidas):
Wireless Earbuds: 2100 unidades vendidas a $129.99
Power Bank: 1900 unidades vendidas a $49.99
Bluetooth Speaker: 1750 unidades vendidas a $79.99
Top 3 Produtos por Receita:
Smartphone X: $1,124,987.50 de receita (1250 unidades a $899.99)
Laptop Pro: $1,156,991.10 de receita (890 unidades a $1299.99)
Wireless Earbuds: $272,979.00 de receita (2100 unidades a $129.99)
APLICAÇÃO 2: ANÁLISE DE DADOS - MONITORAMENTO DE TEMPERATURA
====================================================
Top 3 Cidades Mais Quentes:
Phoenix: 40.2°C
Houston: 35.7°C
Miami: 33.8°C
Top 3 Cidades Mais Frias:
Seattle: 22.4°C
Boston: 27.9°C
Los Angeles: 28.3°C
APLICAÇÃO 3: MÍDIAS SOCIAIS - ENGAJAMENTO DO USUÁRIO
=============================================
Top 3 Postagens Mais Envolventes:
Post ID: 1006
Title: Interview with Celebrity
Engagement Score: 11560
(Curtidas: 4200, Comentários: 580, Compartilhamentos: 2200)
Postado em: 2023-06-15 14:25
Post ID: 1005
Title: Recipe: Delicious Desserts
Engagement Score: 8450
(Curtidas: 3100, Comentários: 450, Compartilhamentos: 1500)
Postado em: 2023-06-14 11:10
Post ID: 1001
Title: Breaking News: Major Announcement
Engagement Score: 8060
(Curtidas: 3500, Comentários: 420, Compartilhamentos: 1200)
Postado em: 2023-06-10 12:30
Top 3 Postagens Mais Curtidas:
Interview with Celebrity: 4200 curtidas
Breaking News: Major Announcement: 3500 curtidas
Recipe: Delicious Desserts: 3100 curtidas
Top 3 Postagens Mais Comentadas:
Tutorial: Python Programming: 650 comentários
Interview with Celebrity: 580 comentários
DIY Home Improvement Projects: 520 comentários
Esses exemplos demonstram como as técnicas que você aprendeu podem ser aplicadas a cenários do mundo real, como análise de vendas de e-commerce, análise de dados meteorológicos e métricas de engajamento de mídia social. Em cada caso, a capacidade de encontrar eficientemente os N elementos superiores é crucial para extrair informações valiosas dos dados.