python - 有条件地加入列表
问题描述
我有一个 Python 列表:
data = ['Cost', '$', 4244, '$', 4090, '$', 3967]
我想要做的是$
与前面的元素合并并获得一个新列表:
data = ['Cost', '$4244', '$4090', '$3967']
实现这一目标的最佳方法是什么?
解决方案
您可以使用迭代器:
data_iter = iter(data)
[e + str(next(data_iter)) if e == '$' else e for e in data_iter]
这利用了我们可以获得迭代的下一个元素的事实,即使在迭代迭代时也是如此。每次'$'
找到一个字符串时,都会拉入下一个元素并将其连接为一个字符串。
演示:
>>> data = ['Cost', '$', 4244, '$', 4090, '$', 3967]
>>> data_iter = iter(data)
>>> [e + str(next(data_iter)) if e == '$' else e for e in data_iter]
['Cost', '$4244', '$4090', '$3967']
推荐阅读
- reactjs - React 应用程序是否必须在自己的服务器进程上运行?
- c - 将用户输入存储到两个数组时中止陷阱
- python - 合并多个 Json 并通过 python 读取时出错
- mongodb - MongoDB 中的 Spring Boot 动态更新
- ios - 用于回复 App Store 评论的 API?
- r - 曲线下的填充区域 - R 图
- python - 我在使用 gunicorn 部署项目时犯了一个错误
- ruby-on-rails - 在 Ruby 中安装 I18n 后多次失败
- ruby-on-rails - 如何在 JSON 中公开继承列
- r - while (abs(G.dev.old - G.dev) > c.crit && iter < n.cyc) 中的 gamlss 错误