python - 将值添加到与另一个列表中显示的次数相对应的列表中
问题描述
如何简化和自动化以下语法,以便我可以实现:
假设:
- x 和 y 的长度总是相同的
- x 和 y 中的值的数量会改变
客观的:
- 根据 x 中显示的相应时间数打印 y 中的值
预期输出>>> ['a', 'a', 'b', 'b', 'b', 'c']
v = len(x)
x = [2, 3, 1]
y = ['a', 'b', 'c']
z = []
for i in range(x[0]):
z.append(y[0])
for i in range(x[1]):
z.append(y[1])
for i in range(x[2]):
z.append(y[2])
#如果x和y都有第四个值,那么它应该重复上面的步骤#
print(z)
解决方案
看看使用zip()
函数
z = []
for amount, item in zip(x, y):
for _ in range(amount):
z.append(item)
或者,更短
z = []
for amount, item in zip(x, y):
z.extend(item for _ in range(amount))
推荐阅读
- amadeus - 包含儿童年龄时的酒店搜索 API 错误
- react-native - 无限可滚动 FlatList - 在两者之间呈现广告/提示
- laravel - Laravel7 phpunit 查看:无法通过测试
- python - 如何根据坐标创建向量?
- android - Android Java 代码连接到附近的 esp8266 AP
- python - 如何将键盘输入转换为 unicode/日文字符?
- python - 在 python 中过早触发收敛的 if/break 测试
- node.js - 如何使用 REST API 调用作为触发器从 nodejs 服务器上的反应代码生成静态 html 页面?
- node.js - Node js Bash Terminal从文件发送环境值
- python - 无法定位元素 - 硒