Python 程序创建以零为中心的列表
创建以零为中心的列表涉及生成一个数字序列,其中零位于列表的中间。虽然列表的大小可以自定义,但通常建议使用奇数以确保元素围绕零的对称分布。
在本文中,我们将讨论使用 Python 编程创建以零为中心的列表的不同方法。
方法
我们可以按照以下步骤创建以零为中心的列表:
确定所需的列表大小。我们将其值称为 n。
如果 n 是奇数,则它已经适合创建以零为中心的列表。如果 n 是偶数,我们需要将其调整到下一个奇数,以确保零位于中心。
通过对 n 执行整数除法 (//) 2 来计算列表的半大小。此值表示零两侧的元素数量。
使用 range 函数创建一个列表,从 -half 开始到 half + 1 结束。该范围将生成从 -half 到 half(包括)的数字。通过将 1 加到 half,我们确保零包含在列表中。
使用 list 函数将 range 对象转换为列表。
通过遵循这些步骤,我们确保列表中的值将围绕零对称分布。
输入-输出场景
让我们了解一些输入-输出场景
Input integer = 5 Output centered list [-2, -1, 0, 1, 2]
输入大小整数为奇数,因此输出列表创建的元素范围为 -2 到 2,以零为中心。
Input integer = 6 Output centered list [-3, -2, -1, 0, 1, 2, 3]
输入大小为偶数,输出列表创建的元素(调整到下一个奇数 7)范围为 -3 到 3,以零为中心。
使用 range() 函数
在这种方法中,我们利用 **range()** 函数生成一个表示以零为中心的列表的数字序列。列表的半大小是通过使用向下取整运算符 (//) 将 n 除以 2 来确定的。通过在范围内从 -half 开始到 half + 1 结束,我们确保生成的列表以零为中心。为了将 range 对象转换为列表,我们应用 list() 函数。
示例
在此示例中,我们将定义一个函数,该函数以整数作为输入,并根据该值创建一个以零为中心的列表。
def create_centered_list(n): if n % 2 == 0: # If n is even, we adjust it to the next odd number n += 1 half = n // 2 centered_list = list(range(-half, half + 1)) return centered_list # define the size of the centered list size = 9 centered_list = create_centered_list(size) print('Output centered list:',centered_list)
输出
Output centered list: [-4, -3, -2, -1, 0, 1, 2, 3, 4]
示例
此示例与上一个示例的工作方式类似,但此处不使用 list() 函数,而是使用列表推导式将 range 对象转换为列表。
def create_centered_list(n): if n % 2 == 0: # If n is even, we adjust it to the next odd number n += 1 half = n // 2 centered_list = [x for x in range(-half, half + 1)] return centered_list # define the size of the centered list size = 15 centered_list = create_centered_list(size) print('Output centered list:',centered_list)
输出
Output centered list: [-7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7]
使用 np.arange() 函数
在这里,NumPy 库中的 np.arange() 函数用于创建具有指定起始、停止和步长大小的数字序列。
示例
在此示例中,使用 numpy 库创建以零为中心的列表。
import numpy as np def create_centered_list(n): if n % 2 == 0: # If n is even, we adjust it to the next odd number n += 1 half = n // 2 centered_list = np.arange(-half, half + 1) return centered_list.tolist() # define the size of the centered list size = 4 centered_list = create_centered_list(size) print('Output centered list:',centered_list)
输出
Output centered list: [-2, -1, 0, 1, 2]