3、举出四种在原位置修改列表对象的运算。
时间: 2024-03-18 13:38:30 浏览: 48
1. append() 方法:在列表末尾添加一个元素。
```
lst = [1, 2, 3]
lst.append(4)
print(lst) # [1, 2, 3, 4]
```
2. extend() 方法:将给定列表中的元素添加到原列表的末尾。
```
lst1 = [1, 2, 3]
lst2 = [4, 5, 6]
lst1.extend(lst2)
print(lst1) # [1, 2, 3, 4, 5, 6]
```
3. insert() 方法:在指定位置插入一个元素。
```
lst = [1, 2, 3]
lst.insert(1, 4)
print(lst) # [1, 4, 2, 3]
```
4. pop() 方法:从列表末尾删除一个元素,并返回该元素。
```
lst = [1, 2, 3]
element = lst.pop()
print(element) # 3
print(lst) # [1, 2]
```
这些方法都是在原位置修改列表对象的运算。
相关问题
4、举出四种在原位置修改字典对象的运算。
1. update() 方法:用一个字典的键值对更新原字典中的对应键值对,如果原字典中不存在对应的键,则添加该键值对。
```
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
dict1.update(dict2)
print(dict1) # {'a': 1, 'b': 3, 'c': 4}
```
2. pop() 方法:删除指定键的键值对,并返回该键对应的值。
```
dict1 = {'a': 1, 'b': 2}
value = dict1.pop('b')
print(value) # 2
print(dict1) # {'a': 1}
```
3. setdefault() 方法:返回指定键的值,如果键不存在则添加该键值对,并返回默认值(默认值为 None)。
```
dict1 = {'a': 1, 'b': 2}
value = dict1.setdefault('c', 3)
print(value) # 3
print(dict1) # {'a': 1, 'b': 2, 'c': 3}
```
4. del 语句:删除指定键的键值对。
```
dict1 = {'a': 1, 'b': 2}
del dict1['b']
print(dict1) # {'a': 1}
```
这些方法都是在原位置修改字典对象的运算。
举出一个CRS编码矩阵运算过程的例子
假设我们有一个矩阵A:
```
1 2 3
4 5 6
7 8 9
```
我们可以把它转换成CRS编码格式,得到以下三个数组:
- values:`[1, 2, 3, 4, 5, 6, 7, 8, 9]`
- rowPtrs:`[0, 3, 6, 9]`
- colIndices:`[0, 1, 2, 0, 1, 2, 0, 1, 2]`
现在,假设我们要对矩阵A进行乘法运算,计算A乘以向量V,其中V为:
```
1
2
3
```
我们可以先把V转换成CRS编码格式,得到以下两个数组:
- values:`[1, 2, 3]`
- rowPtrs:`[0, 1, 2, 3]`
- colIndices:`[0, 0, 0]`
接下来,我们可以利用CRS编码格式进行矩阵-向量乘法运算。具体来说,我们首先要确定V中的每个元素对应的行,然后根据rowPtrs数组找到该行对应的values数组中的起始位置和结束位置,最后计算该行与V的内积,得到结果向量:
```
A * V = [1*1 + 2*2 + 3*3, 4*1 + 5*2 + 6*3, 7*1 + 8*2 + 9*3] = [14, 32, 50]
```
因此,矩阵A乘以向量V的结果为[14, 32, 50]。
阅读全文