我需要创建一个由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]])
鉴于您的当前结构,请尝试使用.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]])
也许您想要的就是这样。
counter = []
for x in range(2,8):
counter.append(ingreso_datos[x][0])
这应该返回[3,4,5,6,7,8],其中从ingreso_datos中的列表中的每个第一个索引接收每个值。
如果要在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)