面试题答案
一键面试设计思路
- 使用生成器来逐步生成元组中的元素,避免一次性加载整个大元组到内存中。
- 通过迭代生成器,每次取出1000个元素进行特定计算(这里是计算平均值并记录)。
Python代码实现
def large_tuple_generator(tuple_data):
for item in tuple_data:
yield item
def process_large_tuple(tuple_data):
gen = large_tuple_generator(tuple_data)
result = []
while True:
sub_list = []
for _ in range(1000):
try:
sub_list.append(next(gen))
except StopIteration:
break
if sub_list:
avg = sum(sub_list) / len(sub_list)
result.append(avg)
if not sub_list:
break
return result
示例使用
假设 large_tuple
是包含数百万个元素的元组
large_tuple = tuple(range(10000)) # 这里仅为示例,实际应是数百万元素的元组
res = process_large_tuple(large_tuple)
print(res)