【问题标题】:filter even and odd values from a dictionary and add these even and odd values to lists and write them to a txt file从字典中过滤偶数和奇数值并将这些偶数和奇数值添加到列表中并将它们写入 txt 文件
【发布时间】:2021-08-12 22:47:18
【问题描述】:

代码:

def even_odd_split(Dic1):
    even = []
    odd =  []
    for sublist in Dic1.values():
        for x in sublist:
            if x % 2 == 0:
            even.append(x)
            else:
            odd.append(x)
    return even, odd
 Dic1  = {"N1": [1, 3, 7, 6, 10],
      "N2": [2, 3, 9, 10, 21, 36],
      "N3": [4, 6, 5, 12, 24, 35],
      "N4": [0, 3, 14, 15, 16, 18]
     }

     print('Even items: %s\nOdd items%s' % even_odd_split(Dic1))

     with open("odd.txt","w") as f:
             f.write(str(odd))

     with open("even.txt","w") as f:
             f.write(str(even))

错误:未定义名称“奇数”

是否因为它在列表中为空而未找到,但我添加了偶数和奇数。我不明白你为什么给出这样的错误。我该如何解决错误?

【问题讨论】:

  • 您的代码与方法的缩进级别相同,但在 return 语句之后。我认为你的缩进被打破了,至少在这个问题上
  • if x % 2 == 0: 部分的缩进也被破坏了

标签: python list dictionary txt


【解决方案1】:

变量有一个范围。如果它们在方法中,则在方法完成后变量就消失了。这就是为什么你 return 的东西。

在您调用方法的地方,您可以将方法的结果分配给新的变量。

由于您返回一个元组,因此您可以在赋值时有 2 个变量:

x, y = even_odd_split(Dic1)

或者,如果你想再次使用相同的名字

even, odd = even_odd_split(Dic1)

这是完整的代码。仔细阅读并尝试了解名称的全部含义。请注意,它们在方法内部和外部是不同的。

def even_odd_split(numbers):
    even_numbers = []
    odd_numbers = []
    for sublist in numbers.values():
        for x in sublist:
            if x % 2 == 0:
                even_numbers.append(x)
            else:
                odd_numbers.append(x)
    return even_numbers, odd_numbers


Dic1 = {"N1": [1, 3, 7, 6, 10],
        "N2": [2, 3, 9, 10, 21, 36],
        "N3": [4, 6, 5, 12, 24, 35],
        "N4": [0, 3, 14, 15, 16, 18]
        }

even, odd = even_odd_split(Dic1)
print(f'Even items: {even}\nOdd items: {odd}')

with open("odd.txt", "w") as f:
    f.write(str(odd))

with open("even.txt", "w") as f:
    f.write(str(even))

【讨论】:

    猜你喜欢
    • 2021-08-11
    • 2022-12-01
    • 1970-01-01
    • 2017-02-06
    • 1970-01-01
    • 2018-11-18
    • 2021-09-24
    • 2013-04-13
    • 2021-12-13
    相关资源
    最近更新 更多