繁体   English   中英

如果我有更多的值要插入我的二维数组,再添加一个内部数组,Python

[英]Add one more inner array if I have more values to insert in my 2D Array, Python

我在使用多维数组时遇到了一些逻辑问题。 我想创建一个二维数组,其中每个内部数组都可以包含 8 个元素,如果元素的数量大于内部数组的数量,我需要创建一个额外的数组并添加元素的 rest在创建的数组中。

这是我到目前为止所拥有的:

注意:变量“数据”将包含我从我对我的数据库执行的 SELECT 查询中获得的任意数量的值,对于此示例,假设我有 11 个类别。

category_list = ListProperty()

data = ['Category0', 'Category1', 'Category2', 'Category3', 'Category4', 
         'Category5', 'Category6', 'Category7', 'Category8', 'Category9',
         'Category10']

for i in range(1):
  self.category_list.append([])
    for j in range(8):
      if i*8+j >= len(data):
        break
      self.category_list[i].append(data[i*8+j])

这就是我将得到的:[['Category0', 'Category1', 'Category2', 'Category3', 'Category4', 'Category5', 'Category6', 'Category7']]

这很好,因为它只在我的第一个内部数组中保存了 8 个元素,我知道如果我将范围从1增加到2 ,我在“数据”中拥有的类别的 rest 将在第二个内部数组中

[
['Category0', 'Category1', 'Category2', 'Category3', 
'Category4', 'Category5', 'Category6', 'Category7'], 
['Category8', 'Category9', 'Category10']
]

太好了,这就是我需要的(有点)。 这个想法是在不需要手动修改范围的情况下生成一个新的内部数组。

谢谢你。

您可以使用 while 循环而不是 for 循环,这样它将一直循环直到满足特定条件而不是固定次数:

data = ['Category0', 'Category1', 'Category2', 'Category3', 'Category4','Category5', 'Category6', 'Category7', 'Category8', 'Category9','Category10', 'Category11', 'Category12','Category13','Category14','Category15','Category16','Category17','Category18','Category19','Category20','Category21','Category22','Category23','Category24','Category25','Category26']


category_list = []

n = 0
while n < len(data):
    lim = min(n+8,len(data))
    cats = []
    while n < lim:
        cats.append(data[n])
        n += 1
    category_list.append(cats)

print(category_list)

output

[['Category0', 'Category1', 'Category2', 'Category3', 'Category4', 'Category5', 'Category6', 'Category7'], ['Category8', 'Category9', 'Category10', 'Category11', 'Category12', 'Category13', 'Category14', 'Category15'], ['Category16', 'Category17', 'Category18', 'Category19', 'Category20', 'Category21', 'Category22', 'Category23'], ['Category24', 'Category25', 'Category26']]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM