在C语言中,我习惯于通过传递变量地址(按引用传递)来做到这一点,但是在Python中,尽管已经阅读了一些替代方法,但我并不怎么想如何传递Google表格(工作表)到必须使用gspread库在线更改并保存的功能。
这是我的代码:
def ordenar(self, list):
sheet = len(list.worksheets())
for i in range(sheet):
lista = list.get_worksheet(i).row_values(1)
lista.sort()
size = len(lista)
if size > 1:
cell_list = list.get_worksheet(i).range(1, size)
j = 0
for cell in cell_list:
cell.value = lista[j]
j = j+1
# Update in batch
list.get_worksheet(i).update_cells(cell_list)
现在使用功能的主要代码部分:
#Teste de ordenação
Jose.vocabulario.ordenar(Jose.vocabulario.artigo)
首先,请不要使用list
作为参数名称,因为它会遮盖Python的内置list
函数。
您可以通过简单地...以某种方式对其进行修改来更改函数中的对象。当然,该对象必须是可变的。例如:
mylist = [1, 2, 3]
print(mylist) # output: [1, 2, 3]
def append_five(list_to_modify):
list_to_modify.append(5)
append_five(mylist)
print(mylist) # output: [1, 2, 3, 5]
我怀疑您的情况正在发生,在某些时候,需要保存Google表格工作表,以使生成的文件反映代码中的更改。我对Google Sheets API的了解不多,您也没有提到要使用它们的模块,但这就是您在openpyxl(用于处理Excel电子表格的Python模块)中使用的方法。
我已经解决了。错误出在worksheet.range()函数中:worksheet.range(开始行,开始列,最后一行,最后一列)。