MST
星途 面试题库

面试题:Python嵌套字典与集合在高效算法实现中的优化

假设有一个巨大的嵌套字典,代表一个电商平台的商品信息,结构如下: ```python products = { 'category1': { 'product1': {'price': 100, 'ratings': [4, 5, 3, 4], 'reviews': {'user1': 'Good product', 'user2': 'Not bad'}}, 'product2': {'price': 150, 'ratings': [3, 4, 4], 'reviews': {'user3': 'Great', 'user4': 'Average'}} }, 'category2': { 'product3': {'price': 200, 'ratings': [5, 5, 4], 'reviews': {'user5': 'Excellent', 'user6': 'Top - notch'}} } } ``` 1. 编写一个高效的算法,计算每个类别的商品平均价格,要求在处理大量数据时尽量减少内存占用和时间复杂度。 2. 利用集合的特性,找出所有评论中出现频率最高的前10个单词,同时优化算法以提高效率,考虑如何处理大量评论数据时的性能问题。
22.9万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

1. 计算每个类别的商品平均价格

def calculate_average_price(products):
    category_total_price = {}
    category_product_count = {}
    for category, products_in_category in products.items():
        total_price = 0
        product_count = 0
        for product, details in products_in_category.items():
            total_price += details['price']
            product_count += 1
        category_total_price[category] = total_price
        category_product_count[category] = product_count
    average_prices = {category: total_price / product_count for category, total_price in category_total_price.items()}
    return average_prices

2. 找出所有评论中出现频率最高的前10个单词

from collections import Counter

def most_common_words(products, top_n=10):
    all_reviews = []
    for category, products_in_category in products.items():
        for product, details in products_in_category.items():
            all_reviews.extend(details['reviews'].values())
    words = ' '.join(all_reviews).split()
    word_counter = Counter(words)
    return word_counter.most_common(top_n)