首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在较短的列表上迭代更大的列表?

如何在较短的列表上迭代更大的列表?
EN

Stack Overflow用户
提问于 2019-09-24 12:57:07
回答 1查看 56关注 0票数 0

正确的。所以我在做游戏。我的方法是,你有部队在编队,而这些编队是代表在一份名单。这不会是一件复杂的事情。我不会发动一场全面战争,至少现在还没有,但我需要一种方法,如果一个编队有更多的部队,部队就会回到对方名单的开始,进行小规模的战斗检查。

代码语言:javascript
复制
orc1 = orcs.Ogre("Ojjo")
orc2 = orcs.Orc("Durek")
orc3 = orcs.Goblin("Spleesh")

orcform = [orc1,orc2,orc3]

leg1 = imp.Militia("Hans")
leg2 = imp.Archer("Daan")
leg3 = imp.Ballista("The Deathmachine")
leg4 = imp.Slinger("Gus")

impform = [leg1, leg2, leg3, leg4]

def formexchange(attackform, defendform):
    tally = []
    for attacker, defender in zip(attackform, defendform):
        tally.append(exchange(attacker, defender))
    return (tally)

formexchange(impform,orcform)

有几个函子不在里面,但我想你能拍到照片

很明显,这只是一个简单的拉链。我想如果我不想让他们战斗,直到所有的东西都死了,这会更容易,但我不。我需要一种方法让impform3基本上从兽人开始,我需要使这个重复,我需要干净地这样做.尽可能少干净

还有,忽略我给部队命名的不确定的方式。已经准备用一个名字生成器来修复这个问题了

EN

回答 1

Stack Overflow用户

发布于 2019-09-24 13:04:47

您可以轻松地从较长的列表中弹出项目,直到其为空。

代码语言:javascript
复制
def attack(list1, list2):   
    tally = []   
    if list1 > list2:
        long = list1         
        short = list2
    else:
        long = list2
        short = list1
    try:
        while 1:
            for item in short():
                tally.append(exchange(long.pop(), item))
    except IndexError:
        return tally
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58080844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档