遍历两个列表A和B

时间:2019-10-21 07:43:12

标签: python list-comprehension

我尝试遍历两个列表A和B。其中B等于A-A [i],其中i = 1:

  

例如listA = ['A','B','C','D']。   对于列表A中的第一个项目“ A”,我   希望列表B具有['B','C','D']对于列表A中的第二个项目“ B”,   我希望列表B具有['A','C','D']

到目前为止我一直在尝试。

listA = ['A', 'B', 'C', 'D']
for term in listA:       
    listA.remove(term)
    for item in listA:
        print(listA)

4 个答案:

答案 0 :(得分:2)

尝试一下

>>> la = ['A', 'B', 'C', 'D']
>>> for i in la:
    _temp = la.copy()
    _temp.remove(i)
    print(_temp)

输出:

['B', 'C', 'D']
['A', 'C', 'D']
['A', 'B', 'D']
['A', 'B', 'C']

*如果要将打印输出分配给新变量,请使用字典,其中的键将打印列表的名称和值。

答案 1 :(得分:2)

如果只想打印子列表,它将像:

 for i in range(len(listA)):
    print(listA[:i]+listA[i+1:])

或者,

for i in listA:
    print(list(set(listA) - set(i)))

答案 2 :(得分:1)

这是您想要的吗?

listA = ['A', 'B', 'C', 'D']

Bs = \
[listA[:idx] + listA[idx + 1:] 
    for idx 
    in range(len(listA))]

for B in Bs:
 print(B)

答案 3 :(得分:0)

将上述解决方案再进一步一步,您可以使用字典理解功能将对每个结果列表的引用存储在相应的变量中:

keys_map = {x: [item for item in listA if item != x] for x in listA}

print(keys_map)

输出

{
 'A': ['B', 'C', 'D'],
 'B': ['A', 'C', 'D'],
 'C': ['A', 'B', 'D'],
 'D': ['A', 'B', 'C']
}

并像这样访问所需的键

keys_map.get('A')

# returns

['B', 'C', 'D']