怎么把一个列表中的正数和负数区分出来,并且让这些正数归为一组一组,负的归为一组一组

有三种方法可以考虑一下

最简单的方法,直接调用函数即可
import itertools
list1 = [1,1,1,1,1,1,1,1,1,1,-1,-1,-1,-1,-1,2,2,2,2,2,2,2]
for i,g in itertools.groupby(list1,lambda x:x<0):print(list(g))

第二种方法,这里是用while先对判断count是否小于列表的长度,然后再用乘积进行判断,如果两个相乘为正的,说明这两个数属于正数或者负数,然后再进行相加,最后当count总长度等于列表长度的时候break

list= [1,1,2,3,4,5,5,6,7,-1,-2,-3,-4,5,5,6,7,8,9-1,-1,-1,-1,2,2,3,4,4,5,6,6]
list_out = []
temp = []
count =0
while count+1 < len(list):temp.append(list[count])while list[count] * list[count+1] >0:temp.append(list[count+1])count +=1if count+1 == len(list):breaklist_out.append(temp)temp =[]count +=1
print(list_out)

第三种方法,是加多一个flag判断条件,先让列表进行for循环,然后对其进行判断,当该树大于0并且flag大于0的时候,s列表添加,反之则相反,最后对其进行清空,再把内容进行入栈

MyList=[1,1,2,3,4,5,5,6,7,-1,-2,-3,-4,5,5,6,7,8,1,-1,-1,-1,2,2,3,4,4,5,6,6]
s = []
flag=0
for i in MyList:if i==0:continueif len(s) == 0 and i !=0 :s.append(i)elif i>0 and flag>=0:s.append(i)flag=1elif i<0 and flag<=0:s.append(i)flag=-1else:if len(s) >= 2:print(s)s = []    # 清空flag=0s.append(i)  # 入栈
# 最后一轮,需判断下
if len(s) >= 2:print(s)

在列表中正数和负数区分出来,并且对它们进行分列相关推荐

  1. 统计一组整数中正数、负数和零的个数

    要求 编写算法,输入n个整数存入一维数组,统计输出其中的正数.负数和零的个数. 代码 #include<stdio.h> #include<stdlib.h>int input ...

  2. 汇编语言(五)之数组中正数和负数分离

    将数组中的正数和负数分离到两个数组 程序运行: 代码: datas segmenta dw -1,2,3,4,-2,-3,5,6,7,8,9,-10,13,15,-5,-24,-36,34,53,-9 ...

  3. 计算机中正数和负数相加,负数减正数公式 正数与负数相加公式

    负数减正数的公式:负数-正数=-(正数+负数)=负数.负数减正数的结果为负数,保持符号不变,将两个数的绝对值相加即可.任何正数前加上负号便成了负数,负数减正数就相当于两个负数相加,因此符号不变,结果为 ...

  4. 【算法】重新排序数组中正数和负数

    排序正数和负数 这里有很多可行的解决方法,我们可以将正数和负数分离,然后将正数和负数依次交换. 原地址在这 https://www.geeksforgeeks.org/rearrange-positi ...

  5. Python中正数、负数的取余运算

    Python基础 对于Python中的正负数取余运算的解析 取余和整除是分不开的,在Python的学习中,正负数之间的取余有时候是比较难以理解的,这时候我们可以借助整除来分析.比如 10 // 3 3 ...

  6. 计算机中正数与负数的存储方式

    本篇主要详细讲解计算机的原码,反码与补码 一,机器数与真值 1,机器数 机器数:一个数在计算机中的二进制表示形式 比如十进制中的数 +3 ,如果用字长为8位的存储单元来存储,则二进制表示为000000 ...

  7. Java中正数与负数操作、的区别

    以下为个人理解,有不对的地方请提出 Java中,>>.>>>都是在数字的二进制的补码中进行的 正数的补码为本身 如 33的二进制表示为 00000000 00000000 ...

  8. 统计一个数组中正数和负数的个数

    1.遍历数组,将正数重新放在一个数组中,负数放在另一个数组中 1 #include <iostream> 2 using namespace std; 3 int main() 4 { 5 ...

  9. java 正数减去负数,Java中正数与负数操作、的区别

    以下为个人理解,有不对的地方请提出 Java中,>>.>>>都是在数字的二进制的补码中进行的 正数的补码为本身 如 33的二进制表示为 00000000 00000000 ...

最新文章

  1. How to list/dump dm thin pool metadata device?
  2. 优雅地处理重复请求(并发请求)
  3. Unity3D游戏制作 移动平台上的角色阴影制作
  4. Linux进程管理工具的使用
  5. mybatis模糊查询不同写法
  6. linux进程管理类命令大全,Linux进程管理类命令
  7. 基因表达聚类分析之初探SOM
  8. 年轻人还有机会征服这个世界吗?
  9. 核心显卡是新一代的智能图形核心
  10. FFmpeg音视频解码同步播放流程
  11. 10个保持注意力的技巧
  12. 三维计算机视觉(七)--Spin image
  13. 图像识别实战——天气分类
  14. 五子棋c语言策划书活动内容,五子棋比赛活动的策划案
  15. 网络传输协议都有什么
  16. ESPDUINO上传数据到oneNet云平台
  17. AttributeError:module ‘keras.engine.topology‘ has no attribute ‘load_weights_from_hdf5_group_by_name
  18. 高校学子如何免费上网?
  19. 学姐的大厂面试总结,想进大厂的必看!!!
  20. 软件工程McCabe环路复杂度计算,自环情况详解。

热门文章

  1. 第三章微分中值定理与导数应用
  2. js 去掉字符串的空格回车换行
  3. U-Boot中支持USB
  4. 怎么将.tex文件转换成pdf
  5. MATLAB仿真短路计算,基于MATLAB短路电流计算与仿真.doc
  6. python中strip的用法
  7. DICOM医学图像处理:DICOM存储操作之 “多幅JPG图像数据存入DCM文件”
  8. myeclipse过期,注册码
  9. tACS恢复老年人认知控制能力的EEG功能和DTI结构网络机制
  10. java重复录入怎么删除,删除重复记录的方法