Python - 按符号对连续元素进行分组

当需要按符号对连续元素进行分组时,使用 '^' 运算符和简单迭代以及 'enumerate'。

以下是相同的演示 -

示例

my_list = [15, -33, 12, 64, 36, -12, -31, -17, -49, 12, 43, 30, -23, -35, 53]

print("名单是:")
print(my_list)

my_result = [[]]
for (index, element) in enumerate(my_list):

   if element ^ my_list[index - 1] < 0:
      my_result.append([element])
   else:
      my_result[-1].append(element)

print("结果是:")
print(my_result)
输出结果
名单是:
[15, -33, 12, 64, 36, -12, -31, -17, -49, 12, 43, 30, -23, -35, 53]
结果是:
[[15], [-33], [12, 64, 36], [-12, -31, -17, -49], [12, 43, 30], [-23, -35], [53]]

解释

  • 定义了一个列表并显示在控制台上。

  • 定义了一个空的列表列表。

  • 列表使用“枚举”进行迭代,“^”运算符用于检查特定元素是否小于 0。

  • 如果是,则将其附加到空列表中。

  • 否则,它被附加到列表的末尾。

  • 这在控制台上显示为输出。