{..}[..]是什么意思?

2024-09-25 08:30:11 发布

您现在位置:Python中文网/ 问答频道 /正文

from functools import reduce
def str2int(s):
    def fn(x, y):
        return x * 10 + y
    def char2num(s):
        return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s]
return reduce(fn, map(char2num, s))

我正在学习函数map()和reduce()。 {…}[.]是什么意思?你知道吗


Tags: 函数fromimportmapreducereturndeffn
3条回答

函数char2num将字符串更改为其int值。例如,如果:

s = '0' 

它返回:

0 #int

实际上,函数find dictionary[s](使用键s)并返回它的值,即它的int值。你知道吗

{}[]意味着检查字典中的某个键,如果找到该键,则返回该键

str2int = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7':7, '8': 8, '9': 9}
get_3 = str2int['3']
print(get_3)

>>> 3

如果您尝试这样做,它基本上与将字典分配给标识符/变量并访问键相同

get_3 = str2int['10']

您会得到一个KeyError,说明字典中不存在特定的键

至于函数的一般映射一般是用来将一个函数的运算应用于一个iterable

map(aFunction, aSequence)

记住python中的字符串是iterable,因此映射返回相应的字典值

Reduce的工作原理是将函数应用于iterable,直到它返回单个值(例如,将此列表或iterable缩减为单个值)

例如,如果用字符串调用函数

str2int('234')

映射遍历字符串并将其映射到字典中的值,然后返回一个列表

[2, 3, 4]

之后reduce将前两个参数作为x and y并应用什么操作x * 10 + y并调用它,直到它只是一个值,所以在第一次调用时

2 * 10 + 3 = [23, 4]

第二次呼叫

23 * 10 + 4 = [234]

所以我们现在有一个值,最后在函数末尾返回值234,您可以使用函数的内部逻辑来习惯这个概念

它的意思很简单:构建一个dictionary并从一个键返回一个特定的值。你知道吗

print({'foo': 0, 'bar': 1}['foo']) # output : 0
print({'foo': 0, 'bar': 1}['bar']) # output : 1

相关问题 更多 >