Python字典用作函数返回时未返回正确的输出

问题描述 投票:-1回答:1

我正面临一个特殊的问题。我有两个列表,如下所示:

lst_1 = ['a','b','c','d','e']
lst_2 = ['x','y','z','w']

我想使用如下功能创建字典:

def test_dict(some_list):
  lst_2 = ['x','y','z','w']
  d = dict(zip(lst_2,lst_1))
  return d

[当我以test_dict(lst_1)的身份运行上述功能时,会得到以下结果

{'z':'c','x':'a','y':'b'} # Note that no key:values are showing for 'w':'d'

但是,当我在不使用函数的情况下运行上述代码时,它的输出如下:

{'z':'c','x':'a','y':'b','w':'d'}

为什么有这种区别?为什么我不能使用函数获得正确的输出?

python
1个回答
0
投票

将要压缩的第二个列表作为参数,如下所示:

def test_dict(some_list):
     lst_2 = ['x','y','z','w']
     d = dict(zip(lst_2,some_list))
     return d

然后通过将名为lst_1的列表作为参数传递来进行调用:

test_dict(lst_1)

注意:按照惯例,您应该有两个函数参数,以便将两个压缩列表手动作为参数传递,而不是在函数本身中对lst_2进行硬编码。


0
投票

此功能工作正常。如果您不必这样做,则不要对函数内部的内容进行硬编码。

lst_1 = ['a','b','c','d','e']
lst_2 = ['x','y','z','w']

def test_dict(key, values):
  return  dict(zip(key,values))


print(test_dict(lst_2, lst_1))

# {'x': 'a', 'y': 'b', 'z': 'c', 'w': 'd'}
© www.soinside.com 2019 - 2024. All rights reserved.