Python 3中的模式匹配词典

Python 3中的模式匹配词典,python,python-3.x,dictionary,pattern-matching,Python,Python 3.x,Dictionary,Pattern Matching,我试图从python字典中对元素进行模式匹配,如下所示: person = {"name": "Steve", "age": 5, "gender": "male"} {"name": name, "age": age} = person # This line right here drives = is_driving_age(age) print f"{name} is {age} years old. He {'can' if drives else 'can\'t'} drive."

我试图从python字典中对元素进行模式匹配,如下所示:

person = {"name": "Steve", "age": 5, "gender": "male"}
{"name": name, "age": age} = person # This line right here
drives = is_driving_age(age)

print f"{name} is {age} years old. He {'can' if drives else 'can\'t'} drive."

# Output: Steve is 5 years old. He can't drive.
在Python3中有这样做的方法吗?我有一个函数,它返回一个相当大的字典,与其花20行解构它,我真的很希望能够对数据进行模式匹配

编辑:这里的前几个答案假设我只是想打印数据,可能我自己不够清晰。请注意,我不仅仅是试图打印出数据,我还试图将其用于进一步的计算

person = {"name": "Steve", "age": 5, "gender": "male"}

my_str = "{name} is {age} years old.".format(**person)

print(my_str)
史蒂夫5岁了


Steve今年5岁。

这实际上不是一种语言功能,但您可以使用unpack操作符作为解决方法:

def is_driving_age(age, **_):
    return age > 17
def print_result(drives, name, age, **_):
    print(f"{name} is {age} years old. He {'can' if drives else 'is not allowed to'} drive.")

person = {"name": "Steve", "age": 5, "gender": "male"}

drives = is_driving_age(**person)
print_result(drives, **person)

这不是真正的语言功能,但您可以使用unpack运算符作为解决方法:

def is_driving_age(age, **_):
    return age > 17
def print_result(drives, name, age, **_):
    print(f"{name} is {age} years old. He {'can' if drives else 'is not allowed to'} drive.")

person = {"name": "Steve", "age": 5, "gender": "male"}

drives = is_driving_age(**person)
print_result(drives, **person)

您可以将字典传递给
str.format
str.format\u map
方法。您可以将字典传递给
str.format
str.format\u map
方法。非常可靠的解决方法!非常可靠的解决方法!