创建包含6个项目的列表

时间:2020-03-26 15:10:36

标签: python list syntax

我需要创建一个由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]])

3 个答案:

答案 0 :(得分: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]])

答案 1 :(得分:1)

如果要在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 for x in ingresso_datos[i][2:8] for i in range(len(ingresso_datos))]

“长”格式将是double for循环:

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

答案 2 :(得分:0)

也许您想要的就是这样。

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

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

相关问题