首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >处理列表

处理列表
EN

Stack Overflow用户
提问于 2017-04-28 01:03:57
回答 2查看 683关注 0票数 1

我有一个列表,我想处理内部的信息。

代码语言:javascript
复制
lis = [[1,2,3,4],[1,5,6]]

我想循环遍历这个列表,这样我就可以得到1 *(2*1/1) * (3*2/2) * (4*3/3)等等。此外,我知道乘并除以相同的数字返回您开始使用的数字,但我想在代码中隐式地声明它。在列表上执行此操作应返回

代码语言:javascript
复制
list = [[24],[30]]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-28 01:40:34

我不知道你想用你写的算术说些什么,但这可能就是你要找的。

代码语言:javascript
复制
from functools import reduce

lis = [[1,2,3,4],[1,5,6]]

list = [[reduce(lambda x, y: x*y, l)] for l in lis]

在一个循环中:

代码语言:javascript
复制
list = []

for l in lis:
    # do stuff here
    list.append(reduce(lambda x, y: x*y, l))

print(list)

产出:

[[24], [30]]

列表理解lambda表达式reduce

注意:对于那些试图在Python3之前的版本中这样做的人,我相信reduce是一个内置的函数。

票数 2
EN

Stack Overflow用户

发布于 2019-09-30 13:28:51

用同数*1/1*2/21 *(2*1/1) * (3*2/2) * (4*3/3)中乘法和除法对我来说没有多大意义。

使用此函数,您可能会得到您正在努力争取的结果,即[[24], [30]]

代码语言:javascript
复制
def list_mult(list_in):
    list_out = []
    for i in list_in:
        result = 1
        sub_list = []
        for j in i:
            result = result * j
        sub_list.append(result)
        list_out.append(sub_list)
    print(list_out)

list_mult([[1,2,3,4],[5,6]])调用函数将给出[[24], [30]]

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43670305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档