python - 删除python列表中的“nan”
问题描述
我是 python 新手,我有一个简单的问题,我怎么能删除这个列表的第一个“nan”,但保留第二个,以防值重复。
例如:
my_list = ['experiencia: 4',
'nan',
'experiencia: 2',
'nan',
'nan',
'experiencia: 10',
'nan',
'experiencia: 2',
'nan',
'experiencia: 3',
'nan',
'nan',
'nan',
'experiencia: 9',
'nan',
'experiencia: 10']
我想要获得的输出如下:
my_list = ['experiencia: 4',
'experiencia: 2',
'nan',
'experiencia: 10',
'experiencia: 2',
'experiencia: 3',
'nan',
'nan',
'experiencia: 9',
'experiencia: 10']
解决方案
你可以……发挥创意:
按其内容对整个列表进行分组,然后再次分解分组。如果键是 a"nan"
您需要少用一个,则分组值具有元素 - 对于不"nan"
使用分组值的情况。最后,删除空"nan"
分组(key = "nan"
, value =["nan"]
由于减一而减少为 []):
my_list = ['experiencia: 4',
'nan',
'experiencia: 2',
'nan',
'nan',
'experiencia: 10',
'nan',
'experiencia: 2',
'nan',
'experiencia: 3',
'nan',
'nan',
'nan',
'experiencia: 9',
'nan',
'experiencia: 10']
from itertools import groupby
result = [x for y in (list(amount) if value != "nan" else ["nan"] * (len(list(amount))-1)
for value, amount in groupby(my_list)) for x in y if x]
print(result)
输出(重新格式化):
['experiencia: 4',
'experiencia: 2',
'nan',
'experiencia: 10',
'experiencia: 2',
'experiencia: 3',
'nan',
'nan',
'experiencia: 9',
'experiencia: 10']
阅读:
- 解释嵌套列表理解的工作原理?(关于如何摆脱
[]
和拆解内部列表)
推荐阅读
- java - 基于查询参数动态改变Zuul中路由的url
- shell - lftp 将本地内容目录镜像到远程
- java - 向 C++ Java Enum 模拟器添加 c++17 constexpr 和其他改进
- pyspark - 如何根据另一个中的唯一记录或值为未知的 pyspark 数据框中选择记录
- python - 如何正确实施反向传播
- powershell - 是否有可以检索 Azure Key Vaults 证书到期日期的 PS 命令/脚本?
- python - 创建一个“while still child marker loop”etree Python
- angular7 - 无法在我的 Angular7 项目中使用令牌刷新
- postgresql - 我的 PostgreSQL Docker 映像在添加 CMD 后停止运行
- angular - 如何处理特别“长”的接口?