【发布时间】:2021-10-18 10:42:32
【问题描述】:
我想在两个函数之间传递一个字典,但是如何在不使用全局变量的情况下做到这一点?
我正在尝试将“fileProcessing”函数中的字典传递给“swappingKandV_PrintingResults”函数而不修改全局变量。
dictionary = dict()
fileinputname = input("Please Input File Name: ")
try:
filehandling = open(fileinputname)
except:
print("Invalid Entry")
quit()
rawfile = filehandling.readlines()
def fileProcessing(rawfile):
for iteration in(range(len(rawfile))):
rawfile[iteration] = rawfile[iteration].lower()
for line in rawfile:
line.rstrip()
line.split()
for words in line:
letter = words.split()
for iteration in letter:
if iteration.isalpha() :
dictionary[iteration] = dictionary.get(iteration, 0) + 1
def swappingKandV_PrintingResults(dictionary):
finalresults = []
for (k,v) in dictionary.items():
newtuple = (v, k)
finalresults.append(newtuple)
finalresults = sorted(finalresults, reverse=True)
for iteration in finalresults:
print(iteration)
fileProcessing(rawfile)
swappingKandV_PrintingResults(dictionary)
【问题讨论】:
-
从第一个函数返回字典的值,然后传递给下一个。
-
很抱歉打扰你,你有什么资源可以告诉我如何做到这一点吗?
-
只需将
return dictionary添加到fileProcessing函数的末尾即可。然后将返回的值赋给一个变量;例如d = fileProcessing(rawfile)。现在您可以拨打swappingKandV_PrintingResults(d)。 -
附带说明,您应该在打开文件时使用 Python 的
with(以便文件指针正确关闭等)。参见例如here. -
不相关,但
line.rstrip()不会修改原始对象,而是创建一个您必须自己保存的新字符串,即line = line.rstrip()。line.split()也一样。
标签: python dictionary global-variables