请参见以下代码:
list1 = ["in", "france", "germany"]
list2 = ["NAMASTE", "VANAKAM"]
list3 = ["fr1", "fr2", "fr3"]
list4 = ["gem1","gem2", "gem3","gem4"]
def list2():
return list2
def list3():
return list3
def list4():
return list4
list5 = [list2(), list3(), list4()]
list = []
for item in range(len(list1)):
list.append({list1[item]:list5[item]})
print(list)
以上代码的输出为:
[{'in':函数list2在| 0x7f7b5dd3be60},{'france':函数列表3位于0x7f7b5dd53170},{'德国':函数list4位于0x717b5dcd8050}]
我期待着这个输出:
[{“ in”:[“ NAMASTE”,“ VANAKAM”]},{“ france”:[“ fr1”,“ fr2”,“ fr3”]},{“德国”:[“ gem1”, “ gem2”,“ gem3”,'gem4']}]
为什么我没有得到这个输出?
答案 0 :(得分:0)
正如@KonradRudolph所说,您正在用函数名称覆盖列表名称。您可以通过更正函数名称来解决此问题。
list1 = ["in", "france", "germany"]
list2 = ["NAMASTE", "VANAKAM"]
list3 = ["fr1", "fr2", "fr3"]
list4 = ["gem1","gem2", "gem3","gem4"]
def list_2():
return list2
def list_3():
return list3
def list_4():
return list4
list5 = [list_2(), list_3(), list_4()]
list = []
for item in range(len(list1)):
list.append({list1[item]:list5[item]})
print(list)
输出:
[{'in': ['NAMASTE', 'VANAKAM']}, {'france': ['fr1', 'fr2', 'fr3']}, {'germany': ['gem1', 'gem2', 'gem3', 'gem4']}]
下面的代码可能有助于更好地理解
list2 = ["NAMASTE", "VANAKAM"]
def list2():
return list2
list5 = [list2()]
print (id(list2))
print (id(list2()))
print(id(list2) == id(list2()))
输出:
59855176
59855176
True
这意味着两个项目的内存地址相同,因此不会调用该函数。
答案 1 :(得分:0)
您应该修复以下棉绒问题。它们都是编码错误: