我正在尝试创建一个游戏。我有一个清单。我想获取此列表中的项目,并将它们随机添加到列表矩阵的索引中。考虑一个网格和一个随机通过该网格移动的项目。
import random
fishlist = ["salmon", "carp", "bass", "catfish"]
grid = [
[1,2,3],
[4,5,6],
[7,8,9],
]
我想用一条随机的鱼代替这些数字。从那开始,我希望鱼能够在网格周围移动。最好的方法是什么?谢谢您的帮助。
最佳答案
尝试这个
>>> grid = [
[1,2,3],
[4,5,6],
[7,8,9],
]
>>> fishlist = ["salmon", "carp", "bass", "catfish"]
>>> [r.__setitem__(i,random.choice(fishlist)) for r in grid for i in xrange(0,len(r))]
[None, None, None, None, None, None, None, None, None]
>>> print grid
[['salmon', 'salmon', 'carp'], ['carp', 'salmon', 'bass'], ['bass', 'salmon', 'bass']]
>>>
要移动鱼试试这个
>>> def Move(grid):
rSrc=random.choice(grid)
rDest=random.choice(grid)
a,b=random.randint(0,len(rSrc)-1),random.randint(0,len(rSrc)-1)
rSrc[a],rDest[b]=rDest[b],rSrc[a]
>>> grid
[['carp', 'catfish', 'catfish'], ['catfish', 'carp', 'salmon'], ['catfish', 'catfish', 'carp']]
>>> Move(grid)
>>> grid
[['catfish', 'catfish', 'carp'], ['catfish', 'carp', 'salmon'], ['catfish', 'catfish', 'carp']]
>>>
使用循环
>>> grid = [
[1,2,3],
[4,5,6],
[7,8,9],
]
>>> fishlist = ["salmon", "carp", "bass", "catfish"]
>>> for r in grid:
for i in xrange(0,len(r)):
r[i]=random.choice(fishlist)
>>> grid
[['bass', 'catfish', 'carp'], ['catfish', 'salmon', 'salmon'], ['bass', 'salmon', 'catfish']]
>>>
关于python - 将列表中的项目随机追加到矩阵列表中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8390548/