将列表中的整数迭代添加到另一个列表

Adding integers in a list iteratively to another list

我正在尝试使用 Python 执行以下操作(复合应用程序): 我有一个名称列表,我想将字符串形式的整数添加到每个名称的末尾。这是期望的结果:

姓名列表: 姓名 1_、姓名 2_、姓名 3_

整数列表: [45,90,45,0]

期望的结果: Name1_45、Name2_90、Name3_45、Name4_0

相反,这是我得到的:

Name1_45、Name2_45、Name3_45、Name4_45

Name1_90、Name2_90、Name3_90、Name4_90

Name1_45、Name2_45、Name3_45、Name4_45

Name1_0、Name2_0、Name3_0、Name4_0

这是我的代码:

import csv
name_list_a = []
name_list_b = []
name_angle_a = []
lam_a = 'Lam1_'
lam_b = 'Lam2_'
for i in range(1,10,1):
    name_list_a.append([lam_a + str(i) + '_'])
    # print(name_list_a)
stack_seq = [45,90,45,0]
for j in stack_seq:
    for z in name_list_a:
        name_angle_a.append([z + [str(j)]])
    print(name_angle_a)

file = open('names.txt', 'w+', newline='')
with file:
    write = csv.writer(file)
    write.writerows(name_angle_a)

我该怎么做(如果有的话)

提前致谢!

您没有提到您使用的语言。通过查看您的代码,我可以找到出错的地方。

for j in stack_seq:
    for z in name_list_a:
        name_angle_a.append([z + [str(j)]])
        print(name_angle_a)

您在上面的行中放置了一个嵌套循环,这导致在您的输出中打印多行。 按照下面的格式。根据您使用的编程语言了解想法并调整语法。 只需使用 1 个循环,如下所示。

for i in range(1,10,1):
 name_list_a.append([lam_a + str(i) + '_'])
 # print(name_list_a)
stack_seq = [45,90,45,0]
j=0
for z in name_list_a:
    name_angle_a.append([z + [str(stack_seq[j])]])
    j+=1
    print(name_angle_a)

您想同时遍历两个列表,而不是使用嵌套循环。在 python 中,您可以使用 zip():

for j, z in zip(stack_seq, name_list_a):
    name_angle_a.append(z + str(j))

print(name_angle_a)