假设有一个列表 a = [1, 3, 5, 6, 8]
。
我想对该列表应用一些转换,并且我想避免按顺序进行,所以像 map(someTransformationFunction, a)
这样的东西通常可以做到这一点,但是如果转换需要知道每个对象的索引怎么办?
例如,假设每个元素都必须乘以它的位置。因此列表应转换为 a = [0, 3, 10, 18, 32]
。
有没有办法做到这一点?
原文由 LetsPlayYahtzee 发布,翻译遵循 CC BY-SA 4.0 许可协议
假设有一个列表 a = [1, 3, 5, 6, 8]
。
我想对该列表应用一些转换,并且我想避免按顺序进行,所以像 map(someTransformationFunction, a)
这样的东西通常可以做到这一点,但是如果转换需要知道每个对象的索引怎么办?
例如,假设每个元素都必须乘以它的位置。因此列表应转换为 a = [0, 3, 10, 18, 32]
。
有没有办法做到这一点?
原文由 LetsPlayYahtzee 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答885 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
使用
enumerate()
函数添加索引:您的函数将传递一个 _元组_,其中包含
(index, value)
。在 Python 2 中,您可以指定 Python 在函数签名中为您解压元组:请注意 lambda 参数规范中的
(i, el)
元组。您可以在def
语句中执行相同的操作:为了给注释等其他函数签名功能让路,函数参数中的元组解包已从 Python 3 中删除。
演示: