如何创建包含256个元素的列表?

3 投票
5 回答
5072 浏览
提问于 2025-04-15 20:17

我开始自学Python,作为练习,我给自己设定了一个任务,就是生成一些查找表,这些表在我另一个项目中需要用到。

我需要生成一个包含256个元素的列表,每个元素的值是math.sin(2*i*pi/256)。问题是,我不知道怎么生成一个初始化为“虚拟”值的列表,然后再用一个循环来逐个赋值给这个sin函数的结果。

使用list()似乎会创建一个“空”的列表,但里面没有元素,所以在循环中我会遇到“列表赋值索引超出范围”的错误。有没有其他方法可以做到这一点,而不是显式地创建一个包含256个元素且每个值都为“0”的列表呢?

5 个回答

1

你还可以尝试:

l = []
for i in range(256):
    l.append(math.sin(2*math.pi/256))

这是一个循环,叫做for循环,它会把同样的值加到列表的最后面,总共加256次。

5

在编程中,有时候我们需要处理一些数据,这些数据可能来自不同的地方,比如用户输入、文件或者网络请求。为了让程序能够理解这些数据,我们通常需要将它们转换成程序能处理的格式。

比如说,如果我们从一个网页上获取了一些信息,这些信息可能是以文本的形式存在的。为了让程序能够使用这些信息,我们需要把它们转化为程序可以理解的结构,比如列表或者字典。这样,程序就能更方便地操作这些数据了。

在这个过程中,我们可能会用到一些工具或者库,这些工具可以帮助我们更轻松地进行数据转换和处理。总之,数据的处理和转换是编程中非常重要的一部分,掌握了这些技巧,可以让我们的程序更加高效和灵活。

my_list = [math.sin(2 * math.pi/256) for i in xrange(256)]
10

已经有两个回答告诉你怎么用“列表推导式”来一次性创建你的列表了。

不过,针对你具体的问题,

mylist = [None] * 256

这是创建一个包含256个项、全部是None的列表的最简单方法,这样你可以以后再填充内容。

如果你从一个空列表开始,可以使用它的.append(...)方法在末尾添加每个项。一个只做append操作的循环,通常会被更简洁的列表推导式替代。

当然,针对你实际提到的任务,

mylist = [math.sin(2 * math.pi/256)] * 256

这将是最好的方法——没有必要计算sin 256次,因为参数总是一样的(大胆假设你说的就是你想表达的意思;-)。

撰写回答