如何将一个列表中的元素分配为另一列表中的元素的值并打印结果?

时间:2019-04-01 06:22:38

标签: python-3.x loops

我需要分配一个列表中的元素作为另一列表中元素的值。我该怎么做?

我有一个字符串,我的字符存储为列表A,而我还有另一个列表B,其元素将充当变量。我尝试使用for循环,其中list-B中的每个迭代将包含list-A中的元素作为其值。我知道它是从List-A的上一次迭代中选择值。我尝试使用嵌套的for循环;第一个用于列表B,第二个用于列表A。它所做的就是为列表B的每次迭代打印列表A的所有元素。

item = "Cheese Burger"
ends = []
end_num = []
for i in range(1,13):
    end_num.append(i)
print(f"end_num = {end_num} \n")

for num in end_num:
    end = f"end{num}"
    #print(end)
    ends.append(end)
print(f"end list = {ends} \n")

characters = []
for char in item:
    characters.append(char)
characters.pop(6)
print("Character list = ", characters, "\n")
#print(len(characters))

for iteration in ends:
    result = '{0} = "{1}"'.format(iteration,char)           
    print(result)

对于字符串“ Cheese Burger”作为输入,预期输出为:

end1 = "C"
end2 = "h"
end3 = "e"
end4 = "e"
end5 = "s"
end6 = "e"
end7 = "B"
end8 = "u"
end9 = "r"
end10 = "g"
end11 = "e"
end12 = "r"

实际输出:

end1 = "r"
end2 = "r"
end3 = "r"
end4 = "r"
end5 = "r"
end6 = "r"
end7 = "r"
end8 = "r"
end9 = "r"
end10 = "r"
end11 = "r"
end12 = "r"

1 个答案:

答案 0 :(得分:0)

将最后一个for循环替换为:

for i in range(len(ends)):
    result = '{0} = "{1}"'.format(ends[i],characters[i])
    print(result)

演示:https://repl.it/@glhr/55449114

此外,在第一个for循环中,考虑使用for i in range(1,len(item))而不是用range(1,13)硬编码字符数

编辑:要创建通用解决方案,可以使用characters.pop(6)删除输入字符串中的所有空格,而不必使用item.replace(" ",""),后者仅在第6个空格处有单个空格时才有效。 :

item = "Che ese Bur  ger"
item = item.replace(" ","")
print(item)

这将输出CheeseBurger

然后,您需要更新第一个for循环的范围:

for i in range(1,len(item)+1):

使end_numitem的大小匹配。

第二个演示:https://repl.it/@glhr/55449114-2,您可以将输入字符串更改为所需的任何内容。

但是,请注意,有一种更简单,更短的解决方案来输出与您的代码相同的内容:

item = "Che ese Bur  ger"
item = item.replace(" ","")
for i in range(1,len(item)+1):
  result = 'ends{0} = "{1}"'.format(i,item[i-1])
  print(result)

第三个演示:https://repl.it/@glhr/55449228-3