创建包含6个项目的列表

问题描述 投票:0回答:3

我需要创建一个由6个元素组成的列表,我通过一个循环来完成它,以便对数组ingreso_datos中的每一行数据都可以做到。

这样做,我创建了一个名为counters的列表,其中还有6个元素的列表,但是我要寻找的只是创建6个元素的列表。

image that describes my problem

我仍在理解列表中的语法,python是我的第一门编程语言,感谢您的反馈,问候

ingreso_datos = [[ 1,    'C',    28,    29,    30,    19,    20,     21,      0,      0,      0,    2.5,    'HEB',    200],
                 [ 2,    'C',    31,    32,    33,    22,    23,      24,    4.5,      0,    4.5,    2.5,    'HEB',    200],
                 [ 3,    'C',    34,    35,    36,    25,    26,      27,    9.5,      0,    9.5,    2.5,    'HEB',    200],
                 [ 4,    'C',    19,    20,    21,    10,    11,      12,      0,    2.5,      0,      5,    'HEB',    200],
                 [ 5,    'C',    22,    23,    24,    13,    14,     15,    4.5,    2.5,    4.5,      5,    'HEB',    200],
                 [ 6,    'C',    25,    26,    27,     6,    17,      18,    9.5,    2.5,    9.5,      5,    'HEB',    200],
                 [ 7,    'C',    10,    11,    12,     1,     2,       3,      0,      5,      0,    7.5,    'HEB',    200],
                 [ 8,    'C',    13,    14,    15,     4,     5,       6,    4.5,      5,    4.5,    7.5,    'HEB',    200],
                 [ 9,    'C',    16,    17,    18,     7,     8,       9,    9.5,      5,    9.5,    7.5,    'HEB',    200],
                 [10,    'B',    19,    20,    21,    22,    23,      24,      0,    2.5,    4.5,    2.5,    'HEB',    200],
                 [11,    'B',    22,    23,    24,    25,    26,      27,    4.5,    2.5,    9.5,    2.5,    'HEB',    200],
                 [12,    'B',    10,    11,    12,    13,    14,      15,      0,      5,    4.5,      5,    'HEB',    200],
                 [13,    'B',    13,    14,    15,    16,    17,      18,    4.5,      5,    9.5,      5,    'HEB',    200],
                 [14,    'B',     1,     2,     3,     4,     5,       6,      0,    7.5,    4.5,    7.5,    'HEB',    200],
                 [15,    'B',     4,     5,     6,     7,     8,       9,    4.5,    7.5,    9.5,    7.5,    'HEB',    200]] 


for i  in range(len(ingreso_datos)):

    counters = []

    counters.append([ingreso_datos[i][2], ingreso_datos[i][3], ingreso_datos[i][4],
                     ingreso_datos[i][5], ingreso_datos[i][6], ingreso_datos[i][7]])
python list syntax
3个回答
1
投票

鉴于您的当前结构,请尝试使用.extend而不是.append。请尝试以下方法:

counters.extend([ingreso_datos[i][2], ingreso_datos[i][3], ingreso_datos[i][4],
                     ingreso_datos[i][5], ingreso_datos[i][6], ingreso_datos[i][7]])

0
投票

也许您想要的就是这样。

counter = []
for x in range(2,8):
   counter.append(ingreso_datos[x][0])

这应该返回[3,4,5,6,7,8],其中从ingreso_datos中的列表中的每个第一个索引接收每个值。


0
投票

如果要在ingreso_datos的每一行中提取元素2-7,则可以编写

counters = []
for i in range(len(ingresso_datos)):
    counters.append(ingresso_datos[i][2:8])

现在counters [0]将是第一行中的值2-7,counters [1]将是第二行中的值,依此类推。一种更紧凑(且更快)的方法来执行相同的操作是

counters = [ingresso_datos[i][2:8] for i in range(len(ingresso_datos))]

这被称为列表生成器,并且如果您继续使用python,那么还不妨和他们一起使用:)如果您想要all one列表中的2-7值(而不是列表)列表),您可以按建议使用.extend或:

counters = [x对于ingresso_datos中的x [i] [2:8]对于范围内的i(len(ingresso_datos))]

采用“长”格式将是双for循环:

counters = []
for i in range(len(ingresso_datos)):
   for x in ingresso_datos[i][2:8]:
       counters.append(x)
© www.soinside.com 2019 - 2024. All rights reserved.