我需要分配一个列表中的元素作为另一列表中元素的值。我该怎么做?
我有一个字符串,我的字符存储为列表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"
答案 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_num
和item
的大小匹配。
第二个演示: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)