根据相关的数字python从字母数字列表中查找特定元素

问题描述 投票:0回答:1

我有包含嵌套字母数字元素的列表。我正在寻找一种方法来查找列表中所有具有相同编号的特定集合。通常,列表看起来像[[[[a#,b#],[a#,b#]]等]。列表显示为休假,

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个回答
2
投票

使用简单的列表理解。遍历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']]]
© www.soinside.com 2019 - 2024. All rights reserved.