python 访问List,Dict中不存在的下标或键值,并捕获异常
时间: 2024-02-26 16:58:57 浏览: 44
在 Python 中,当你尝试访问一个不存在的 List 元素或者 Dict 键值时,会抛出 IndexError 或 KeyError 异常。你可以使用 try-except 语句来捕获这些异常,例如:
```python
my_list = [1, 2, 3, 4, 5]
try:
print(my_list[10]) # 访问一个不存在的下标会抛出 IndexError
except IndexError:
print("访问不存在的下标")
my_dict = {"a": 1, "b": 2, "c": 3}
try:
print(my_dict["d"]) # 访问一个不存在的键值会抛出 KeyError
except KeyError:
print("访问不存在的键值")
```
输出:
```
访问不存在的下标
访问不存在的键值
```
相关问题
在python中,我们有数据类型dict,这里我们将用一个类来模拟实现dict。在类mydcit中,我们用两个列表keyList和valueList分别存放dict中的key和value,其中keyList[i]对应valueList[i],现在需要完成以下三个方法: get_value:该方法根据key打印对应的value。该方法将接收一个key参数,返回值为None。若keyList中拥有key,读取key在keyList中的下标i,打印输出valueList[i];否则打印输出get failed。 delete:该方法根据key删除对应的value。该方法将接收一个key参数,返回值为None。若keyList中拥有key,读取key在keyList中的下标i,删除keyList[i]和valueList[i];否则打印输出delete failed。 update:该方法用于实现字典的键值对更新。该方法将接收一对key和value参数,若keyList中拥有key,读取key在keyList中的下标i,更新valueList[i]为value;否则将key和value分别添加到keyList和valueList的队尾。 注: 下列程序在生成mydict时,将保证keyList中数据互不相同; 下列程序凭借系统输入的随机种子随机生成list; 请复制下列代码并补充TODO部分。 请不要修改if __name__ == '__main__:及其后的语句.
```python
import random
class mydict:
def __init__(self, keyList, valueList):
self.keyList = keyList
self.valueList = valueList
def get_value(self, key):
if key in self.keyList:
i = self.keyList.index(key)
print(self.valueList[i])
else:
print("get failed")
def delete(self, key):
if key in self.keyList:
i = self.keyList.index(key)
del self.keyList[i]
del self.valueList[i]
else:
print("delete failed")
def update(self, key, value):
if key in self.keyList:
i = self.keyList.index(key)
self.valueList[i] = value
else:
self.keyList.append(key)
self.valueList.append(value)
if __name__ == '__main__':
random.seed(1)
keyList = random.sample(range(100), 10)
valueList = random.sample(range(100), 10)
d = mydict(keyList, valueList)
print("初始状态:")
for i in range(10):
d.get_value(keyList[i])
print("删除操作:")
for i in range(10):
d.delete(keyList[i])
print("删除后状态:")
for i in range(10):
d.get_value(keyList[i])
print("更新操作:")
for i in range(10):
d.update(keyList[i], valueList[i]+100)
print("更新后状态:")
for i in range(10):
d.get_value(keyList[i])
```
python dict和list
Python中的dict和list是常用的数据结构。dict是一种键值对的集合,用于存储和访问数据。它使用散列表作为底层数据结构,使用伪随机探测(pseudo-random probing)的散列表来解决冲突。dict的key必须是可哈希的对象,即不可变类型,例如数字、元组、字符串等,而不能使用可变类型如列表、字典和集合作为键。
相比之下,list是一种有序的可变序列,可以存储任意类型的元素。list的实现并不使用散列表,而是使用数组或链表的形式来存储数据。list可以容纳重复的元素,并且支持通过下标访问和修改元素。list的操作时间复杂度与元素的数量成线性关系,因此在插入、删除和查找操作上可能比dict慢。
总之,dict适用于需要通过唯一的键来访问和修改数据的场景,而list适用于需要顺序存储和操作数据的场景。根据具体的需求和操作类型,选择合适的数据结构可以提高程序的效率和性能。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
阅读全文