如何使用 for 循环创建嵌套列表列表

How to create a list of nested lists using for-loop

我创建了一个包含嵌套列表的数据

[[[0.0, 0.0, 1.0, 1.0, 1.0],
 [0.19470745, -0.3966015, 0.65908825, 0.5956116, 0.39256063],
 [0.039188415, 0.17440148, 0.7077338, 0.9051374, 0.6405964],
 [-0.30367687, -0.32211977, 0.75126046, 1.0, 0.75126046],

 [0.0, 0.0, 1.0, 1.0, 1.0],
 [-0.15551904, 0.57100296, 1.0738074, 1.5196773, 1.6318406],
 [-0.49838433, 0.07448171, 1.139848, 1.6789465, 1.9137439]]]

我通过读取 tsv 文件创建了以上数据。对其执行一些操作,然后尝试创建上述列表

if __name__ == '__main__':

    in_data = []
    final_list=[]
    final_list_2=[]
    with open(infile, "r+b") as tsv_in_file:
        reader = csv.DictReader(codecs.iterdecode(tsv_in_file,'utf-8'), delimiter='\t', fieldnames = FIELDNAMES)
        for item in reader:
            for field in ['boxes']:
                item[field] = np.frombuffer(base64.b64decode(item[field]), dtype=np.float32).reshape((int(item['num_boxes']),-1))
                for i in range(len(item[field])):
                    for j in range(len(item[field])):
                      in_data = [0]*5
                      in_data[0]=(((item['boxes'][j][0])-(item['boxes'][i][0]))/(item['boxes'][0][2]))
                      in_data[1] = (((item['boxes'][j][1])-(item['boxes'][i][1]))/(item['boxes'][0][3]))
                      in_data[2] = ((item['boxes'][j][2])/(item['boxes'][i][2]))
                      in_data[3] = ((item['boxes'][j][3])/(item['boxes'][i][3]))
                      in_data[4]=(((item['boxes'][j][2])*(item['boxes'][j][3]))/((item['boxes'][i][2])*(item['boxes'][i][3])))
                      final_list.append(in_data.copy())
                final_list_2.append(final_list)
            break
    print (final_list_2)

我正在尝试制作一组​​ 3 个列表,每个列表和一个包含所有列表组的完整列表

代码行final_list.append(in_data.copy())包含一组列表(包含3个列表)

我正在尝试制作 前三个列表 的列表,在完成 for j in range(len(item[field])): 后由 final_list.append(in_data.copy()) 给出,我想将其保存在 final_list_2.append(final_list)

为此我使用了一个循环

for i in range(len(item[field])):

但是我没有这样做。您可以在上面的数据中看到 [[[ 出现在开始和结束处。该组未创建。谁能帮我解决这个问题

逐行处理文件时,您可以将每个项目添加到 current_group 列表中。当 current_group 中有 3 个元素时,将其附加到主列表并创建一个新的空 current_group 列表。

main_list = []
current_group = []
for item in reader:
    current_item = []

    # Do whatever processing you need to fill up current_item
    # This will be a list containing N elements
    # ...

    current_group.append(current_item) # Add current item to current group

    if len(current_group) == 3:
        main_list.append(current_group) # Add current group to main list
        current_group = [] # Create a new group

# Check if current_group is empty
# If it contains stuff, your last group didn't have three items so it didn't get appended to main_list
if current_group:
    main_list.append(current_group)