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]

更新于: 2023年8月29日

183 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告