python - 为什么Python中的for循环会输出3次列表?
问题描述
我是 Python 的初学者。我正在做一个练习,我必须对列表价格中的项目应用折扣并将结果存储在列表new_prices中。为什么输出重复三遍?有没有办法避免它并只获得一次输出?
先感谢您
prices = [2, 50, 70, 30]
new_prices =[]
for i in prices:
prices[0] = 2 * 0.8
prices[1] = 50 * 0.6
prices[2] = 70 * 0.4
prices[3] = 30 * 0.6
new_prices.append(prices)
print(new_prices)
output: [[1.6, 30.0, 28.0, 18.0], [1.6, 30.0, 28.0, 18.0], [1.6, 30.0, 28.0, 18.0], [1.6, 30.0, 28.0, 18.0]]
expected output: [[1.6, 30.0, 28.0, 18.0]
解决方案
问题的具体原因是您的for
循环是不必要的,但看起来您真正想要做的是这样的事情,您有许多不同的比例因子可以乘以prices
.
prices = [2, 50, 70, 30]
scale_factors = [0.8, 0.6, 0.4, 0.6]
new_prices = []
for price, scale_factor in zip(prices, scale_factors):
new_prices.append(price * scale_factor)
print(new_prices)
请注意使用zip
来从prices
和中获取元素对scale_factors
。
你也可以这样写:
new_prices = [price * scale_factor
for price, scale_factor in zip(prices, scale_factors)]
推荐阅读
- prometheus - Grafana 从 Prometheus 获取当前小时的指标
- powershell - Powershell 作业找不到 System.windows.forms
- python - 从命令中获取用户 ID
- html - 使用 CSS 在列表元素中的文本之后、缩进列表之前添加一个字符
- python - 在安装时在 python 包中创建一个常量
- docker - 无法使用自定义 server_name 访问 nginx docker 容器
- tinkerpop - 'ConfiguredGraphFactory.open' 之后的'图形已关闭'
- node.js - 将文档数组传递到另一个文档节点JS mongodb的问题
- asp.net-core - HTTP 错误 500.30 - ASP.NET Core 5 应用程序无法启动
- react-native - React Native Flatlist 如何将第一项设置为默认选择?