【问题标题】:Finding specific elements from an alphanumeric list based on there associated number- python根据相关的数字从字母数字列表中查找特定元素-python
【发布时间】:2020-09-18 07:41:21
【问题描述】:

我有一个包含嵌套字母数字元素的列表。我正在寻找一种方法来查找列表中具有相同编号的所有特定集合。一般来说,列表看起来像 [[[a#, b#], [a#, b#]], etc]。这份名单是休闲的,

A=[[[a2, b4], [a1, b4]],
   [[a1, b1], [a1, b1]],
   [[a3, b2], [a3, b4]],
   [[a2, b2], [a2, b2]]]

我想找到一种方法来遍历 A 并找到集合中的 a 和 b 来自相同数字的所有集合,例如 [[ai, bi], [ai, bi]],其中 i 代表相同的数字(它可以是任何数字,但必须相同)。 输出看起来像这样,

B=[[[a1, b1], [a1, b1]],
   [[a2, b2], [a2, b2]]

到目前为止,我编写的代码如下所示,

B=[]
for i in range(len(A)):
    if A[i][0][0]==A[i][1][0]:
        if A[i][0][1]==A[i][1][1]:
            pair=[[A[i][0][0],Ai][0][1]], [A[i][1][0],A[i][1][1]]]
        B.append(pair)

但这有其自身的问题,因为它没有考虑到 a 和 b 之间的数字也需要相同(在任何一组中)。我想知道如何将其合并到代码中,或者是否有一种更好的整体方法。

【问题讨论】:

    标签: python list alphanumeric


    【解决方案1】:

    使用简单的列表推导。遍历 A 并检查两个元素是否相同。

    In [26]: A=[[['a2', 'b4'], ['a1', 'b4']],
    ...:    [['a1', 'b1'], ['a1', 'b1']],
    ...:    [['a3', 'b2'], ['a3', 'b4']],
    ...:    [['a2', 'b2'], ['a2', 'b2']]]
    
    In [27]: B = [i for i in A if i[0] == i[1]]
    
    In [28]: B
    Out[28]: [[['a1', 'b1'], ['a1', 'b1']], [['a2', 'b2'], ['a2', 'b2']]]
    

    【讨论】:

    • 很高兴,它成功了。如果你喜欢它,你可以接受它作为答案。
    • 嘿,抱歉,我想早点提出这个问题。此处的代码输出所有相同的 i[0] 和 i[1],例如 [[a1, b2],[a1,b2]]。我想知道是否有办法只输出数字都相同的数字,例如 [[a2,b2],[a2,b2]]。
    • 嘿实际上我想通了!再次感谢您的帮助
    猜你喜欢
    • 2020-10-05
    • 1970-01-01
    • 2020-03-07
    • 1970-01-01
    • 2020-09-14
    • 2023-01-07
    • 1970-01-01
    • 1970-01-01
    • 2020-02-12
    相关资源
    最近更新 更多