使数组中的每个元素本身成为一个数组
Making each element in an array, an array by itself
我目前正在尝试将项目列表附加到 google sheet 中。我从另一个 google sheet 中抓取了一个项目列表,我的列表如下所示:
arr = ['1','2','3','4','5','6']
但是,为了批量更新到 google sheet,我需要这样制作我的列表:
arr = [['1'],['2'],['3'],['4'],['5'],['6']]
最初,我想,在抓取的时候,我将单独附加数组,清除并重新执行,就像这样:
arr.append('1')
master_arr.append(arr)
输出很好,master_arr
看起来像这样:
master_arr = [['1']]
所以,我想我会通过执行 arr.clear()
来清除 arr
。但是在清除arr
的时候,我的master_arr
也变成了这样:
master_arr = [[]]
所以我的问题很简单,我如何获得这个数组?
arr = [['1'],['2'],['3'],['4'],['5'],['6']]
另一种写入 google sheet 的方法是这样使用 for 循环:
for i in range(len(arr)):
sheet.update_cell(i+2, 7, arr[i])
这种方法的唯一缺点是它非常慢,一旦我们投入生产,这个程序可能会迭代多达 10,000 行,每次迭代大约需要 100 - 3000 毫秒,这不是我拥有的唯一专栏待更新。
使用 master_array
格式的列表进行批量更新只需要一小部分时间。提前感谢您的帮助。
简单更新
arr = ['1','2','3','4','5','6']
for idx, item in enumerate(arr):
arr[idx] = [item]
列表理解
print([[item] for item in arr])
您可以使用 map()
:
arr = list(map(list, arr))
如评论中所述,您可以使用 list comprehensions:
arr = [[item] for item in arr]
另一种方法是使用 enumerator:
for index, item in enumerate(arr):
arr[index] = [item]
for index in range(len(arr)):
arr[index] = [item]
如果你想使用numpy,你可以这样做
arr = np.array(['1','2','3','4','5','6'])
然后你可以通过
重塑数组
arr = np.reshape(arr,(-1,1))
对于大长度数组,我不知道它比其他方法有多少改进,但您应该尝试一下。
我目前正在尝试将项目列表附加到 google sheet 中。我从另一个 google sheet 中抓取了一个项目列表,我的列表如下所示:
arr = ['1','2','3','4','5','6']
但是,为了批量更新到 google sheet,我需要这样制作我的列表:
arr = [['1'],['2'],['3'],['4'],['5'],['6']]
最初,我想,在抓取的时候,我将单独附加数组,清除并重新执行,就像这样:
arr.append('1')
master_arr.append(arr)
输出很好,master_arr
看起来像这样:
master_arr = [['1']]
所以,我想我会通过执行 arr.clear()
来清除 arr
。但是在清除arr
的时候,我的master_arr
也变成了这样:
master_arr = [[]]
所以我的问题很简单,我如何获得这个数组?
arr = [['1'],['2'],['3'],['4'],['5'],['6']]
另一种写入 google sheet 的方法是这样使用 for 循环:
for i in range(len(arr)):
sheet.update_cell(i+2, 7, arr[i])
这种方法的唯一缺点是它非常慢,一旦我们投入生产,这个程序可能会迭代多达 10,000 行,每次迭代大约需要 100 - 3000 毫秒,这不是我拥有的唯一专栏待更新。
使用 master_array
格式的列表进行批量更新只需要一小部分时间。提前感谢您的帮助。
简单更新
arr = ['1','2','3','4','5','6']
for idx, item in enumerate(arr):
arr[idx] = [item]
列表理解
print([[item] for item in arr])
您可以使用 map()
:
arr = list(map(list, arr))
如评论中所述,您可以使用 list comprehensions:
arr = [[item] for item in arr]
另一种方法是使用 enumerator:
for index, item in enumerate(arr):
arr[index] = [item]
for index in range(len(arr)):
arr[index] = [item]
如果你想使用numpy,你可以这样做
arr = np.array(['1','2','3','4','5','6'])
然后你可以通过
重塑数组arr = np.reshape(arr,(-1,1))
对于大长度数组,我不知道它比其他方法有多少改进,但您应该尝试一下。