一、系列缘由
作为一名运维工程师,也一直有一个学习开发的想法,值此之际,不知道博客的下一期目标在哪里,在这思考和犹豫的间隙想着学习和充实一下自己,学习一下python语言,python随着大数据和人工智能的兴起而日益火爆。边学习边实践的原则学习python,希望自己更上一层楼。
二、学习笔记
此笔记主要记录列表的学习笔记,学习内容为列表的各方法。列表的主要方法如下:
函数 | 含义 |
len(list) | 列表元素个数 |
max(list) | 返回列表元素最大值 |
min(list) | 返回列表元素最小值 |
list(seq) | 将元组转换为列表 |
方法 | 含义 |
list.append(obj) | 在列表末尾添加新的对象 |
list.count(obj) | 统计某个元素在列表中出现的次数 |
list.extend(seq) | 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
list.index(obj) | 从列表中找出某个值第一个匹配项的索引位置 |
list.insert(index, obj) | 将对象插入列表 |
list.pop([index=-1]) | 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 |
list.remove(obj) | 移除列表中某个值的第一个匹配项 |
list.reverse() | 反向列表中元素 |
list.sort( key=None, reverse=False) | 对原列表进行排序 |
list.clear() | 清空列表 |
list.copy() | 复制列表 |
三、实践练习
1、洗牌代码
(base) [root@s186 python]# cat xp.py
#!/root/anaconda3/bin/python
# This is a python program.
'''
这是一断扑克洗牌代码,默认新牌是按照花色和顺序排列
经过洗牌后顺序被打乱,执行可见效果。
'''
import random
#初始顺序
poke = ["红桃A","红桃2","红桃3","红桃4","红桃5","红桃6","红桃7","红桃8","红桃9","红桃10","红桃J","红桃Q","红桃K","黑桃A","黑桃2","黑桃3","黑桃4","黑桃5","黑桃6","黑桃7","黑桃8","黑桃9","黑桃10","黑桃J","黑桃Q","黑桃K","方块A","方块2","方块3","方块4","方块5","方块6","方块7","方块8","方块9","方块10","方块J","方块Q","方块K","梅花A","梅花2","梅花3","梅花4","梅花5","梅花6","梅花7","梅花8","梅花9","梅花10","梅花J","梅花Q","梅花K","大王","小王"]
print("\n洗牌前的扑克牌顺序:\n",poke)
#洗牌1遍
for i in range(len(poke)):
poke.append(poke.pop(random.randint(0,len(poke)-1)))
print("\n洗牌一遍的扑克牌顺序:\n",poke)
#洗牌2遍
for i in range(len(poke)*2):
poke.append(poke.pop(random.randint(0,len(poke)-1)))
print("\n洗牌俩遍的扑克牌顺序:\n",poke)
#顺牌
poke.sort()
print("\n顺牌后的扑克牌顺序:\n",poke)
2、设计说明
- 定义一个54张牌的列表
- 使用len函数获取列表长度,此参数作为洗牌次数,一次抽插一张牌
- 使用pop方法弹出抽中的牌
- 使用append方法将抽中的牌放置到最后
- 使用sort函数排序列表达到顺牌效果
3、执行测试