【问题标题】:Passing an element of dictionary instead of whole dictionary to a function in Python? [duplicate]将字典元素而不是整个字典传递给Python中的函数? [复制]
【发布时间】:2021-12-25 21:19:25
【问题描述】:
color_table = {"Red":[1,2,3], "Blue":[4,5,6]}

def my_function(colortable):
    print("List is :-",color_table['Red'])

my_function(color_table)

在这里,我只想在函数my_function 中传递color_table 字典的第一个元素,而不是整个字典。
有可能吗?

【问题讨论】:

  • 请注意,first elementdict(映射)没有意义。在 3.7 之前,字典中元素的顺序甚至没有得到保证。您可以传递密钥,但如果不传递 dict,您的函数将依赖全局变量,因此不是好方法。最好将 dict 放在函数内部。
  • 通过整个字典有什么问题?如果函数“知道”哪个键有用,则传递整个字典并让函数提取值。如果调用者知道哪个键有用,则传递值。

标签: python dictionary-comprehension


【解决方案1】:

是的,

您使用字典中的第一个键,

要获取密钥,请将密钥转换为列表并获取第一个参数

一行

my_fonction(color_table[list(color_table.keys())[0]])

或多行

first_key = list(color_table.keys())
first_key = first_key[0]
my_fonction(color_table[first_key])

【讨论】:

  • 如果我不知道我打算从字典中提取并传递给函数的值索引怎么办?这种逻辑只适用于本质上是固定的字典,但不适用于可变长度或动态性质的字典?
  • 不需要创建列表:next(iter(color_table.keys())) 可以解决问题。 (字典的“第一个元素”是否有意义取决于上下文。)
猜你喜欢
  • 2018-08-20
  • 2017-10-01
  • 2016-01-30
  • 1970-01-01
  • 2015-10-25
  • 1970-01-01
  • 2016-12-22
  • 2019-02-11
  • 1970-01-01
相关资源
最近更新 更多