我需要创建一个由6个元素组成的列表,我将通过一个循环来执行此操作,以便它对数组 ingreso_datos 中的每一行数据进行处理。
这样做,我创建了一个名为 counters 的列表,其中还有6个元素的列表,但是我要寻找的只是创建6个元素的列表。
描述我的问题的图像:
我仍在理解列表中的语法,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]])
答案 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中的列表中的每个第一个索引接收每个值。