全网求解,用Python处理一个基础题目
2024-09-06 21:44:03
昨天在群里看见一个Python的问题,趁着今天有那么一点点时间,就想把这个题目分享出来,让大家一起解决。毕竟三个臭皮匠,赛过诸葛亮。
原始数据如下:
1
origin_lst = [0, 0, 1, 2, 3, 4, 4, 5, 6, 6, 6, 7, 8, 9, 4, 4]
期望得到的结果是:
1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 4]
实现过程
方法一
这里【老松鼠】给了一份代码,如下所示:
Python学习交流Q群:660193417####
import itertools
origin_lst = [0, 0, 1, 2, 3, 4, 4, 5, 6, 6, 6, 7, 8, 9, 4, 4]
final_lst = [x[0] for x in itertools.groupby(origin_lst)]
# final_lst = [k for k, g in itertools.groupby(origin_lst)]
print(final_lst)
方法二
后来【瑜亮老师】也给了一份代码,使用列表推导式,如下所示:
origin_lst = [0, 0, 1, 2, 3, 4, 4, 5, 6, 6, 6, 7, 8, 9, 4, 4]
res = [origin_lst[i] for i in range(len(origin_lst)) if i == 0 or origin_lst[i] != origin_lst[i - 1]]
print(res)
运行结果如下图所示:
顺利的解决了问题。
方法三
后来给了一个基础的方法,如下所示:
origin_lst = [0, 0, 1, 2, 3, 4, 4, 5, 6, 6, 6, 7, 8, 9, 4, 4]
result = [origin_lst[0]]
for i in range(1, len(origin_lst)):
if origin_lst[i] != origin_lst[i-1]:
result.append(origin_lst[i])
print(result)
运行结果如下图所示:
方法四
后来还给了一个生成器的方法,如下所示:
Python学习交流Q群:660193417####
origin_lst = [0, 0, 1, 2, 3, 4, 4, 5, 6, 6, 6, 7, 8, 9, 4, 4]
def del_adjacent(iterable):
prev = object()
for item in iterable:
if item != prev:
prev = item
yield item
result = list(del_adjacent(origin_lst))
print(result)
运行结果如下所示:
方法五
后来【Chloe】自己也给了一个enumerate方法,代码如下所示:
origin_lst = [0, 0, 1, 2, 3, 4, 4, 5, 6, 6, 6, 7, 8, 9, 4, 4]
lst_final = []
for index, val in enumerate(origin_lst):
if val != origin_lst[index - 1]:
lst_final.append(val)
print(lst_final)
运行结果如下图所示:
最后
事实证明,条条大路通罗马,方法还是很多的!以后大家在遇到问题的时候也可以试着去打开自己的思维,或许可以得到更多的解决方法。
最新文章
- MathType for mac 能够实现在Word里面双击公式编辑的方法
- 通过浏览器https能够访问SVN,但eclipse SVN,tortoiseSVN始终连接不上SVN的问题解决方案
- linux学习笔记——基础命令
- 关于python的最大递归层数详解
- Autodesk招聘开发咨询顾问(北京或上海),需要内推的扔简历过来啊
- uml与数据库设计
- php快递单号查询源码
- C++中四种类型转换方式
- Nlog从下载到使用例子
- HDOJ-1018 Big Number
- hibernate的映射关系之一对多
- 解决在onCreate()过程中获取View的width和Height为0的方法
- Future of Future
- react 报错的堆栈处理
- 如何改变vim中的光标形状 : 在插入状态下显示为 beam?而在 其他 状态下 为 block?
- python自动化,使用unittest对界面操作,读取excel表格数据输入到页面查询结果,在把结果保存到另外一张excel中
- Android CPU类型及预定义的宏
- 【JVM】6、聊聊JVM常用参数设置
- dns 安全
- OpenH264编译ffmpeg android