Python列表满足多重条件设置问题,python列表满足,现有一列表:a = [1
Python列表满足多重条件设置问题,python列表满足,现有一列表:a = [1
现有一列表:
a = [1, 3, 4, 0, 1, 5, 5, 1, 5, 1, 5, 6, 2, 3, 1, 5, 3]
条件:
删除所有 5 元素前面的元素 1在所有的 3 元素后面加上 3 个元素 2该怎么操作?
更新:是两个条件同时满足,不是分别。
a = [1, 3, 4, 0, 1, 5, 5, 1, 5, 1, 5, 6, 2, 3, 1, 5, 3] ','.join( [str(i) for i in a] ).replace('1,5', '5').replace('3', '3,2,2,2').split(',')
感谢 @土豆_612874 指正,不过使用 enumerate 会出现列表越界问题,
1.
for i in range(len(a)-1, 0, -1): if a[i] == 5 and a[i-1] ==1: a.pop(i-1)print a
2.
for i in range(len(a)-1, -1, -1): if a[i] == 3: a.insert(i+1, 2) a.insert(i+1, 2) a.insert(i+1, 2)print a
@m3l3_L 答案可以更加精简点,用enumerate
另外删除所有 5 元素前面的元素 1,应该只是指紧挨着5的那个1吧?
1.
for i, n in enumerate(a): if n == 1 and a[i+1] == 5: a.pop(i)
2.这样的实现其实也是有问题的,但是比较QUICK AND DIRTY。如果在3后面插入又是3,那么就死循环了。
for i, n in enumerate(a): if n == 3: a.insert(i+1, 2) a.insert(i+1, 2) a.insert(i+1, 2)
a = [1, 3, 4, 0, 1, 5, 5, 1, 5, 1, 5, 6, 2, 3, 1, 5, 3]a = [ a[i] for i in range(len(a)) if i == len(a) - 1 or a[i] != 1 or a[i+1] != 5 ]a = sum([x == 3 and [3,2,2,2] or [x] for x in a], [])print(a)
编橙之家文章,
相关内容
- Python解决微信平台接口乱码问题,python平台接口乱码
- flask web项目能通过cmd命令行查看错误代码吗?,flaskcmd
- 关于web.py性能优化方法大家闲聊讨论下,web.py性能优化
- Python do while如何实现,pythonwhile,刚学编程的小白提问
- Mac Pyhotn2.7 pip报ImportError: No module named pip错误原因,,p
- 求能人解答python filter()和filter_by()区别是什么,pythonf
- 参照《Flask Web 开发》书中方法更新数据库出错如何解,
- vim代码自动提示功能怎么调试,vim代码调试,如题,感觉
- Django报错MultiValueDictKeyError,前端用户登入模块导入问题
- python 中asyncio.wait和asyncio.gather的区别?,,刚学PYTHON的协
评论关闭