首页 > 解决方案 > 零长度的列表理解

问题描述

我正在生成一个包含 100 个数字的随机列表,可以是 1 到 20。我正在使用列表理解方法生成列表,如下面的代码所示。

我创建了第一个函数,我基本上在其中创建了列表。该列表按预期创建!

import random


v = []

def generate_v():
  v = [random.randint(0,100) for i in range(0,100)]
  return v
print(generate_v())


def avg_v():
  return sum(v)/len(v)
print(avg(v))

但是,如果我执行另一个函数,其中我需要生成列表的长度,它会让我给出错误,说我不能被零除。基本上它假设我创建的列表没有任何长度

标签: pythonlist

解决方案


print(generate_v())调用该函数,打印其结果并丢弃该结果。内部功能与外部v无关。v

更好的方法是

import random

def generate_v():
  v = [random.randint(0,100) for i in range(0,100)]
  return v

def sum_v(v):
  return sum(v)/len(v)

# now the code:
v = generate_v()
print(v)
print(sum(v))
print(sum_v(v))

推荐阅读