【问题标题】:How to split integers within a two-dimensional list in Python 3?如何在 Python 3 中拆分二维列表中的整数?
【发布时间】:2020-05-20 02:48:07
【问题描述】:

说我有:

data = [[1, 2], [3, 4]]

我想定义一个函数,该函数将采用这个列表参数“数据”,并能够在第一个实例和第二个实例中分离整数。

之后,它需要获取共享每个实例的每个整数,并像这样彼此相减:

1 - 2 (which would be -1)
3 - 4 (which would be -1)

然后取这些数字并找到乘积并返回最终整数 (-1 * -1) = 1

有点迷茫,不知道该怎么做。

【问题讨论】:

    标签: python python-3.x list function split


    【解决方案1】:

    您可以通过解包轻松做到这一点:

    data = [[1, 2], [3, 4]]
    
    d1, d2 = data
    a, b, c, d = *d1, *d2
    res = (a - b) * (c - d)
    
    print(res)
    # 1
    

    如果有任意数量的子列表,你最好迭代:

    lst = []
    for d in data:
        a, b = d
        lst.append(a - b)
    
    res = 1
    for x in lst:
        res *= x      
    
    print(res)
    # 1
    

    【讨论】:

    • 有趣!这绝对有效,但是还有其他更简单的方法可以使用条件逻辑等吗?另外,你能解释一下这里发生了什么吗?所以本质上,使用 d1, d2 = data,我们能够将列表分成“桶”分别放入 d1 和 d2 中吗?然后使用 a, b, c, d = d1, *d2 我们能够为这些整数中的每一个创建“变量”吗?让我大吃一惊,哈哈。那么在 d1 和 d2 之前是否有 '' 的术语?顺便说一句,感谢您的输入!
    • @CodingNoob,条件逻辑?你想带什么条件?
    • 或者,可能不是条件逻辑,但可能是一些 for 或 while 循环,抱歉。我想我想将此功能定义为更具适应性。例如,如果在另一种情况下,用户想要传递数据,但这次它有 4 个 2 个整数的列表。所以本质上,我们将如何构建原始函数,我们不必每次都重做代码来匹配数据中的列表数量,而是用户可以在数据列表中放置任意数量的列表,它还会计算一切吗? (假设它仍然是一个二维列表)。对不起,如果我没有意义lol
    • 你能保证每个列表中的元素还是两个吗?
    • 是的。所以它总是一个由成对的整数列表组成的列表。所以也许像 [[1,2],[3,4],[5,6]] 但它永远不会是 [[1,2,3],[4,5,6]]
    猜你喜欢
    • 2016-01-08
    • 2022-11-20
    • 2017-05-06
    • 2019-12-14
    • 2021-01-30
    • 1970-01-01
    • 2021-02-02
    • 2019-05-01
    • 1970-01-01
    相关资源
    最近更新 更多