python - 根据条件向列表元素添加值(Python)
问题描述
假设我有一个这样的列表:
list = [1, 2.1, 3.3, 4.5, 3.2, 4.7, 1, 3, 3.3, 3.9, 4.9]
现在,每次列表中的后续元素小于前一个元素时,即list[i] < list[i-1]
我想将 10 的倍数按升序添加到从这一点到满足条件的下一个点的所有元素。上面示例的结果列表应如下所示:
new_list = [1, 2.1, 3.3, 4.5, 13.2, 14.7, 21, 23, 23.3, 23.9, 24.9]
所以首先添加 10,然后添加 20...我会提到每个间隔的长度是任意长的。
我怎样才能优雅地做到这一点?我通过将列表用作临时列表并通过 for 和 if 循环附加到新列表来完成我想要的,但这看起来相当难看。我想用列表理解来做,但我不知道这是如何工作的。
解决方案
list1 = [1, 2.1, 3.3, 4.5, 3.2, 4.7, 1, 3, 3.3, 3.9, 4.9]
for i in range(len(list1)):
while True:
try:
if list1[i] > list1[i+1]:
list1[i+1] = list1[i+1] + 10
else:
break
except:
print("Done")
break
print(list1)
print("Final List: ")
print(list1)
推荐阅读
- python - 从word文件生成图像,并将图像限制为文件中的文本
- reactjs - 从 6.1.x 版本更新开始,Storybook 自动构建太多
- google-sheets-api - Google SpreadSheets Api 在某些请求后阻止表格
- circuit - Logisim 如何从 ROM 内存文件向终端写入字?
- .net - 是在自托管 Azure DevOps 代理上安装 dotnet SDK,还是在构建管道中添加 UseDotNet@2 任务更好?
- java - 为什么 Windows 和 macOS/Linux 之间的 sleep(1) 的 CPU 使用率存在很大差异?
- asp.net-core - 从信息日志级别的内存缓存消息中删除响应
- windows - 清除 Flutter for Desktop (Windows) 应用程序的数据
- python - 'async_generator 不是可调用对象' FastAPI 依赖问题应用程序
- bash - 如何检测应用程序何时使用 bash 打开?有带陷阱的事件吗?