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。
如果是,则将其附加到空列表中。
否则,它被附加到列表的末尾。
这在控制台上显示为输出。