【Python 第26课】操作list
上周给list开了个头,知道了什么是list。假设我们现在有一个list:
l = [365, 'everyday', 0.618, True]
除了用 for...in 遍历 l 中的元素,我们还能做点啥?
1. 访问 list 中的元素
list中的每个元素都对应一个递增的序号。与现实中习惯的序号不同在于,计算机中的计数通常都是从0开始,python也不例外。(如果你记不清这个而导致了错误,请去听一下孙燕姿的《爱从零开始》:)
要访问l中的第 1 个元素365,只要用 l[0] 就可以了。依次类推,
print (l[1])
就会输出 'everyday'
注意,你不能访问一个不存在的元素,比如 l[10],程序就会报错,提示你 index 越界了。
2. 修改list中的元素
修改list中的某一个元素,只需要直接给那个元素赋值就可以了:
l[0] = 123
输出l,得到 [123, 'everyday', 0.618, True],第1个元素已经从365被改成了123。
3. 向list中添加元素
list有一个append方法,可以增加元素。以l这个列表为例,调用的方法是:
l.append(1024)
输出 l,你会看到 [123, 'everyday', 0.618, True, 1024],1024被添加到了l,成为最后一个元素。(第一个元素在上一步被改成了123)
然后同样可以用l[4]得到1024。
4. 删除list中的元素
删除list中的某一个元素,要用到 del:
del l[0]
输出 l,得到 ['everyday', 0.618, True, 1024]。这时候再调用l[0],会得到'everyday',其他元素的序号也相应提前。
5. 获取 list 的元素个数
list的长度,也就是元素的个数,可以通过系统内置的 len 方法获取:
count = len(l)
print(count)
就会输出列表的长度值 4
以上这些命令,你可以直接在python shell中尝试。
#==== 点球小游戏 ====#
我打算从今天开始,每天说一点这个小游戏的做法。方法有很多种,我只是提供一种参考。你可以按照自己喜欢的方式去做,那样她才是属于你的游戏。
先说一下方向的设定。我的想法比较简单,就是左、中、右三个方向,用字符串来表示。射门或者扑救的时候,直接输入方向。所以这里我准备用 input。有同学是用1-9的数字来表示八个方向和原地不动,每次输入一个数字,这也是可以的。不过这样守门员要扑住的概率可就小多了。
至于电脑随机挑选方向,如果你是用数字表示,就用我们之前讲过的randint来随机就行。不过我这次打算用random的另一个方法:choice。它的作用是从一个list中随机挑选一个元素。
于是,罚球的过程可以这样写:
from random import choice
print ('Choose one side to shoot:')
print ('left, center, right')
you = input()
print ('You kicked ' + you)
direction = ['left', 'center', 'right']
com = choice(direction)
print ('Computer saved ' + com)
if you != com:
print ('Goal!')
else:
print ('Oops...')
反之亦然,不赘述。
来源:Crossin的编程教室