![Python王者归来](https://wfqqreader-1252317822.image.myqcloud.com/cover/412/31794412/b_31794412.jpg)
上QQ阅读APP看书,第一时间看更新
9-3 建立字典列表
读者可以思考一下程序实例ch9_2.py,我们建立了小兵soldier0字典,在真实的游戏设计中为了让玩家展现雄风,玩家将面对数十、数百或更多个小兵所组成的敌军,为了管理这些小兵,可以将每个小兵当作一个字典,字典内则有小兵的各种信息,然后将这些小兵字典放入列表(list)内。
程序实例ch9_22.py:建立3个小兵字典,然后将小兵组成列表(list)。
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P120_59721.jpg?sign=1739545121-p7kvAhCIYxlas55I6QOdVsB3f2vbgfW3-0-5c1dd5d497189cf2656f5b81ea117516)
执行结果
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P120_59727.jpg?sign=1739545121-Dcw5o8mrx1P0cZB4ypVSIDVwDPWJpjMu-0-46daf9a8e131eae295d030ff64e00cc6)
程序设计中如果每个小兵皆要个别设计这样太没效率了,我们可以使用7-2节的range( )函数处理这类的问题。
程序实例ch9_23.py:使用range( )建立50个小兵,tag是red、score是3、speed是slow。
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P121_60152.jpg?sign=1739545121-YyEuUNSlN4UXhGCx6UBs8G6KNU5ISf63-0-faddb1e54e789b1df8862a330951b2e9)
执行结果
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P121_60158.jpg?sign=1739545121-1BsJwPLKMZ9v3ePDLRbld3C1Wh2TKkbD-0-401710f67fc7c5fb9f8ae614812ea5c5)
读者可能会想,上述小兵各种特征皆相同,用处可能不大,其实对Python而言,虽然50个特征相同的小兵放在列表内,但每个小兵皆是独立,可用索引方式存取。通常可以在游戏过程中使用if语句和for循环处理。
程序实例ch9_24.py:重新设计ch9_23.py,建立50个小兵,但是将编号第36到38名的小兵改成tag是blue、score是5、speed是medium。
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P121_60161.jpg?sign=1739545121-bCptoQrGPgD5oQR5l5CnDMiZUC8OLs74-0-4311a0b798275b8fcfdc18a8932b6b81)
执行结果
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P121_60167.jpg?sign=1739545121-FyvkgLjzuiQTtpvQwIS6dskcGrd2VwwF-0-8e54fc324885fdf73152342f89cbe4dc)
当然读者可以使用相同方式扩充上述实例,这个将当作习题给读者练习。