Python - 乘以子列表中每個元素與其索引
在 Python 中,有多種方法可以將子列表中的每個元素乘以其索引。此任務涉及遍歷子列表,訪問元素及其對應的索引,並執行乘法運算。實現此目標的兩種常見方法是使用 for 迴圈、利用列表推導式以及使用 NumPy 庫。每種方法都提供了它自己在程式碼簡潔性、效率和清晰度方面的優勢。在本文中,我們將詳細探討這兩種方法,提供分步演算法和 Python 程式碼示例。到最後,您將清楚地瞭解如何在 Python 中將子列表元素乘以其索引。
乘以子列表的元素
Python 提供了幾種方法來將子列表中的每個元素乘以其索引。一種常見的方法是使用 for 迴圈。此方法迭代子列表並執行乘法運算。透過使用 enumerate 函式,我們能夠在每次迭代中訪問元素及其索引。
此外,NumPy 庫為陣列操作提供了有效的解決方案。透過將子列表轉換為 NumPy 陣列,我們可以使用索引陣列執行逐元素乘法。此方法簡化了乘法運算並提供了最佳化的效能。
這兩種方法都提供了將子列表中每個元素乘以其索引的所需結果。方法的選擇取決於諸如程式碼可讀性、效率以及對額外陣列操作的需求等因素。Python 的靈活性允許開發人員為其特定需求選擇最合適的方法。
方法 1 使用 for 迴圈
第一種方法包括使用 for 迴圈迭代子列表並執行乘法運算。以下是此方法的分步演算法:
演算法
定義一個函式,我們將其稱為 multiply_by_index,它接受一個子列表列表作為輸入
建立一個名為 results 的空列表。
使用 for 迴圈迭代輸入列表中的每個子列表
對於每個子列表,迭代其元素並將每個元素乘以其索引。
將結果新增到 results 列表中。
返回 results 列表。
示例
def multiply(sublists): results = [] for i, sublist in enumerate(sublists): # Use a different variable name to avoid shadowing the "list" keyword multiplied_list = [] for j, element in enumerate(sublist): # Use separate variables for index and element multiplied_list.append(element * i) # Multiply element by its index i instead of j results.append(multiplied_list) return results # Example sublists = [[71, 2, 83], [4, 50, 6], [37, 8, 19]] #Invoke multiply function and pass its value to the result variable result = multiply(sublists) #Finally, print the result print(result)
輸出
[[0, 0, 0], [4, 50, 6], [74, 16, 38]]
方法 2 使用 NumPy
第二種方法包括使用 NumPy 庫,該庫在 Python 中提供了高效且有用的陣列操作。NumPy 陣列類似於列表,但提供了額外的功能和最佳化。以下是此方法的演算法
演算法
匯入 NumPy 庫。
定義一個函式 multiply_by_index,它接受一個子列表列表作為輸入。
將子列表轉換為 NumPy 陣列,並將它的值賦給子列表。
使用逐元素乘法將子列表與索引陣列相乘
將結果轉換回巢狀列表。
返回修改後的子列表列表。
示例
#import the required library import numpy as np #Create the user defined function def multiply(sublists): sublists = np.array(sublists) indices = np.arange(len(sublists)) multiplied_sublists = sublists * indices[:, np.newaxis] return multiplied_sublists.tolist() # Example sublists = [[18, 2, 83], [4, 15, 6], [7, 98, 9]] result = multiply(sublists) print(result)
輸出
[[0, 0, 0], [4, 15, 6], [14, 196, 18]]
結論
在本文中,我們研究了使用 Python 將子列表中的每個元素乘以其索引的兩種不同方法。我們檢查了演算法,提供了分步說明,並顯示了每種方法的 Python 程式碼。此外,我們使用測試輸入說明了每種方法的輸出。
您可以根據您的特定需求和偏好選擇其中任何一種方法。Python 的靈活性和豐富的庫集使您可以輕鬆有效地完成各種任務。