【问题标题】:How to assign Python function outcome to different variables when looping [duplicate]循环时如何将Python函数结果分配给不同的变量[重复]
【发布时间】:2018-03-12 18:01:46
【问题描述】:

例如,我定义了一个这样的函数来处理几个文本文件

def file_process(file):  
    procedures
    ...   
    return (a,b,c)

如果我有5个文本文件,如何让它们都通过这个函数,输出结果分配给每个文件的结果。

目标是这样的:

x1, y1, z1 = file_process(a.txt)    
x2, y2, z2 = file_process(b.txt)    
x3, y3, z3 = file_process(c.txt)   
x4, y4, z4 = file_process(d.txt)    
x5, y5, z5 = file_process(e.txt) 

但是这种打字当然是愚蠢的。所以如果我尝试for循环:

for f in [a.txt, b.txt, c.txt, d.txt, e.txt]:
     x,y,z = file_process(f)

那么如何确保将结果分别分配给每个文本文件的结果呢?

【问题讨论】:

  • 在这种情况下,可能是一个列表:带有键 'x''y''z' 的字典;或元组(x, y, z)
  • 可以使用字典或数组来存储对应的元组(x,y,z)。在 dict 的情况下,您的 func 可以返回键值对,其中文件名作为键,元组作为值。
  • 这取决于你以后如何访问它们,如果你知道 x1, y1, z1 来自第一个文件并且 a.txt 是第一个文件,你可以使用元组列表,但最好的方法是使用字典,其中键是文件名,值是包含函数返回值的元组。这方面的一个示例如下所示:d = {"a.txt": (x1, y1, z1), "b.txt": (x2, y2, z2) ...};并假设文件名在列表中,示例代码为:d = {f: file_process(f) for f in filenames_list}
  • @QnARails,@NightFury 明白了!谢谢

标签: python python-3.x function for-loop


【解决方案1】:

你也可以这样做。 在此我将结果分配给一个列表。

results = []
for f in [a.txt, b.txt, c.txt, d.txt, e.txt]:
    results.append(file_process(f))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-07
    • 2011-08-27
    • 1970-01-01
    • 2010-10-02
    • 2013-01-03
    • 2014-01-15
    • 2019-07-03
    相关资源
    最近更新 更多