![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=1739193485-c5cSy0c52ju3ydCSVoMOWvdaTqpX6f51-0-0c0f2bc3c61e6d44ea05befc709f7478)
执行结果
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P120_59727.jpg?sign=1739193485-zCFwc4Sy0jKPoqFj9sV2hjvoGPzSBxLI-0-c0d9c15d4463d96531f93185dbc4096e)
程序设计中如果每个小兵皆要个别设计这样太没效率了,我们可以使用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=1739193485-eDocnUqq3T8jbF00z5zvL3gEqRsDPKp6-0-a7707ee7b952d2f10fc2d86a09144f3a)
执行结果
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P121_60158.jpg?sign=1739193485-SrQCfB3zp2pdtV0xo3joX7nc6J3ITyho-0-4afa66e11f82fa96818d91466b9f366c)
读者可能会想,上述小兵各种特征皆相同,用处可能不大,其实对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=1739193485-nXOm5US6V0hIK8el70tQm6JP8IXlP5yq-0-c88ba75acc9d490ebe5383e5fec044ca)
执行结果
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P121_60167.jpg?sign=1739193485-xEmdVesYi9xfyTmeQlzICnH3T6niW4eG-0-b8813446040ea68ed3709a4b78187327)
当然读者可以使用相同方式扩充上述实例,这个将当作习题给读者练习。