【发布时间】:2015-11-16 00:02:03
【问题描述】:
我正在尝试创建用户输入字典。该字典接受任何用户输入(例如“我喜欢馅饼”),并将列出每个值及其各自的索引。但是,我的 buildIndex 函数不会返回在函数中创建的字典。谁能提供一些关于为什么会发生这种情况的见解?
d = {}
def buildIndex(m):
m = m.lower()
words = m.split()
i = 0
while i < len(words):
nextWord = words[i]
if nextWord in d:
ref = [d[nextWord]]
ref.append(i)
d[nextWord] = ref
else:
d[nextWord] = i
i += 1
return d
【问题讨论】:
-
它不返回任何东西,或者返回你不期望的东西吗?你有什么错误吗?
-
为什么要用 {} 覆盖 d?无论您传递给方法的
d值如何,都会在您执行d = {}时立即被覆盖。 -
另外,如果您可以举例说明您提供的典型输入是什么以及预期的输出是什么,这将有所帮助。我运行了你的代码,它确实返回了一个字典。
-
您似乎有可能将
dto 传递给您的函数,因为您认为这种情况类似于C中处理数据结构的方式(它在将指针传递给函数,该函数旨在指向函数返回后的数据结构,这有点常见)。在 Python 中你不需要那种间接性。除非意图是修改而不是创建字典——从输入参数中删除d。 -
我没有得到最接近的投票。他正在寻求洞察力,并且显然是 Python 的新手。这个问题既不是
give-me-deh-codez的情况,也不是明显超出范围——他向我们展示了他的尝试,等等。
标签: python dictionary return