python - 如何在Python中保持20个值的列表的同时将iter值的变化更改为居中
问题描述
list = [0,0,0,0,0,0,0,0,100.2,112.3,132.3,133.5,134.5,136.2,136.3,138.3,138.5,139.5]
我想在前几个索引处添加值“0”以使上升值(0 到 100.2)位于中间,例如,列表的长度为 20 我试图通过删除将上升值置于第 10 位从列表后面的最后 2 个索引中添加等量的值,以便原始值 20 也将具有与输出相同数量的 20 值
集中列表输出后:
列表 = [0,0,0,0,0,0,0,0,0,0,100.2,112.3,132.3,133.5,134.5,136.2,136.3,138.3,138.5,139.5]
我已经解决了这个解决方案的问题。我得出的答案如下:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Fri Dec 13 17:09:59 2019
@author: lzh
"""
from collections import Counter
orig = [0,0,0,0,0,0,0,0,0,0,0,0,100.2,112.3,132.3,133.5,134.5,136.2,136.3,138.3]
ad = []
c=Counter(orig)
c.values()
print(c.values())
cs = list(c.values())
if cs[0] < 10:
mod = (10 - cs[0])*[0] + (orig)
for i in range((10 - cs[0])):
mod.pop()
if cs[0] > 10:
for x in range((cs[0] - 10)):
ad.append(orig[-1])
mod = (orig) + (ad)
for i in range((cs[0]-10)):
del mod[0]
#modified = ([0] * (20 - len(orig))) + (orig)
print(mod)
解决方案
要扩展到特定大小,请反转列表,填充所需的值,然后再次反转列表:
mylist=list
mylist.reverse()
mylist.extend([0] * (20 - len(mylist)))
mylist.reverse()
# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100.2, 112.3, 132.3, 133.5, 134.5, 136.2, 136.3, 138.3, 138.5, 139.5]
'list' 也是一个保留关键字,所以我将它设置为不同的变量。
推荐阅读
- amazon-web-services - 如何使用 aws cognito 池添加linkedin 社交登录?
- sql-server - 在 SQL Server 上创建 DDL 触发器需要哪些权限?
- java - 在带有 H2 嵌入式数据库的 Android 设备上使用 JDBC 连接池
- r - 计算曼哈顿距离和欧几里得距离
- version - 柯南自动增量数据包版本
- odoo-10 - 报告文档未在 PDF 中显示样式和标题,但它们是 HTML 版本(从 Odoo 8 迁移到 Odoo 10 后)
- svg - Svg 使用元素
- angular - 将项目从角度 4 升级到 6 后无法运行项目
- javascript - React 组件在按钮单击时自动关闭
- c# - c# Encog Framework,神经网络,为什么我在训练我的网络时会出现内部错误?