pyhton 怎么允许索引超出列表_Python入门丨列表和字典

804bb0d725746b05081cff65457a024a.png

数据类型:列表(list)

一个列表需要用中括号[]把里面的各种数据框起来,里面的每一个数据叫做‘元素’。每个元素之间都要用英文逗号隔开。

f8989e2862cc081dc6abb0f6bfe807f2.png

注:列表中元素的类型给可以不相同,可以是数字、字符串什么是列表

实例

list1 = ['你好', 2, [1, 2]]
list2 = []  # 创建空列表
list3 = list()   # 同上

从列表提取单个元素

列表中每个元素都是有序地排列,每个元素都有自己的位置编号(索引值)。可以通过使用列表名加索引值的中括号,提取相应位置的元素。

f5e516809c9661d6787f592647e95be7.png

注:索引值是从0开始的

实例

students = ['小明', '小红', '小刚']
print(student[0])

输出结果

小明

从列表中提取多个元素

提取多个元素可以通过列表的切片操作。列表名[start : stop]

实例

list2 = [1, 2, 3, 4, 5]
print(list2[1:2])
# 输出结果:[2]
print(list2[1:])
# 输出结果:[2, 3, 4, 5]
print(list2[:4])
# 输出结果:[1, 2, 3, 4]
print(list2[:])
# 输出结果:[1, 2, 3, 4, 5]
print(list2[6:9])
# 输出结果:[]

注:列表切片操作允许超出索引范围

列表切片口诀:左右空,取到头;左要取,右不取。

给列表增加/删除元素

增加元素:列表名.append(新元素)

实例

list1 = [1, 2, 3, 4]
list1.append(5)
print(list1)

输出结果

[1, 2, 3, 4, 5]

注:用append()给列表添加元素,每次只能增加一个元素

删除元素:del 列表名[索引值]

实例

list2 = [1, 2, 3, 4, 5]
del list2[4]
print(list2)

输出结果

[1, 2, 3, 4]

注:del语句既能删除一个元素,也能一次删除多个元素(原理和切片类似)

数据类型:字典(set)

字典的每个键值 key: value 对用冒号 : 分割,每个对之间用逗号 , 分割,整个字典包括在花括号{}中。

8236f544cadf0d727e435af117f311c0.png

实例

scores = {'小明':95, '小红':90, '小刚':90}

输出结果

95

给字典增加/删除元素

增加元素:字典名[新键] = 值

实例

scores = {'小明':95, '小红':90, '小刚':90}
scores['小花'] = 100
print(scores)

输出结果

{'小明': 95, '小红': 90, '小刚': 90, '小花': 100}

删除元素:del 字典名[键]

实例

scores = {'小明':95, '小红':90, '小刚':90}
del scores['小明']
print(scores)

输出结果

{'小红': 90, '小刚': 90}

列表与字典小结

1ee520c6231fb69aa127a8f3f891d103.png

a89cce9c0731874b458f530e0c554113.png

通过列表和字典实现简单狼人杀代码

import random 
import time

ID_list = ['村民','猎人','狼人']
ID_dict = {'1':'村民','2':'猎人','3':'狼人'}
print('欢迎来到狼人杀游戏')
time.sleep(1)
print('选择你的身份,然后抽取卡片')
time.sleep(1)
print('''
村民遇到猎人获得胜利,村民遇到狼人被击杀
猎人遇到狼人获得胜利,猎人遇到农民狼逃跑
狼人遇到村民获得胜利,狼人遇到猎人被击杀
''')
time.sleep(1)
print('-'*30)
time.sleep(1)
User_Choice = input('''1.【村民】  2.【猎人】  3.【狼人】
选择你的身份(输入数字):''')
User_ID = ID_dict[User_Choice]
print('你选择的身份是【{}】'.format(User_ID )+ 'n')
time.sleep(1)
card_choice = input('''1.【♠】 2.【♥】 3.【♣】
抽取上面卡片(输入数字):''')
Computer_Choice_ID = random.choice(ID_list)
time.sleep(0.5)
result = input('按回车查看结果' + 'n')
if User_ID == Computer_Choice_ID:
    print('没想到,对方也是【{}】,一起抱团取暖'.format(Computer_Choice_ID))
elif User_ID == ID_list[ID_list.index(Computer_Choice_ID)-1]:
    print('恭喜你,你遇到了【{}】,获得了胜利'.format(Computer_Choice_ID))
else:
    print('很遗憾,你遇到了【{}】,战役失败了'.format(Computer_Choice_ID))
time.sleep(0.5)
print('-'*30)

作者:one

文章来源:公众号One丨Python

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值