首页 > 解决方案 > 如何使用双循环跳过一些结果?

问题描述

我有一个问题,所以我把它简化了代码,由于我的问题更大,这里的一切都需要保持这种状态。我有 2 个字典和 2 个 for 循环。我需要跳过具有相同结果的输出,如 AA、BB、CC 等……我需要删除 AB 或 BA 之一,我需要保留 AB,但我不需要 BA。你能帮我解决这个问题,但我需要为我的真正问题保持简单吗?

one = {
    "A" : "A",
    "B" : "B",
    "C" : "C",
    "D" : "D",
    "E" : "E",
    "F" : "F",
    "G" : "G",
    "H" : "H"
}
two = {
    "A" : "A",
    "B" : "B",
    "C" : "C",
    "D" : "D",
    "E" : "E",
    "F" : "F",
    "G" : "G",
    "H" : "H"
}

for botname,bot in one.items():
    for topname, top in two.items():
            print (str(bot) + str(top))

输出:

AA*
AB
AC
AD
AE
AF
AG
AH
BA*
BB*
BC
BD
BE
BF
BG
BH
CA*
CB*
CC*
CD
CE
CF
CG
CH
DA*
DB*
DC*
DD*
DE
DF
DG
DH
EA*
EB*
EC*
ED*
EE*
EF
EG
EH
FA*
FB*
FC*
FD*
FE*
FF*
FG
FH
GA*
GB*
GC*
GD*
GE*
GF*
GG*
GH
HA*
HB*
HC*
HD*
HE*
HF*
HG*
HH*

'*' 不输出,输出 * 我想跳过

提前致谢!

标签: pythonpython-3.x

解决方案


你可以只保留对 where bot < top。这将丢弃重复的 wheretop < bot以及对 where top == bot

for bot in one.values():
    for top in two.values():
        if bot < top:
            print(bot + top)

.items()如果您只使用值而不是键,则无需使用。


推荐阅读