from functools import reduce
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]
a=reduce(fn, map(char2num, '13579'))
print(a)
为什么map的属性'13579'可以是一个字符串,不应该是一个列表吗?
答案 0 :(得分:1)
map
采用功能和序列。字符串也是序列。你也可以迭代它:
map(...):map(function,sequence [,sequence,...]) - >列表
>>> s = 'string'
>>> for i in s:
print i
s
t
r
i
n
g
答案 1 :(得分:0)
在Python中,字符串是字符列表。这就是为什么你可以循环(或使用map)字符串,然后在循环内单独处理每个char。
您可以在此处找到更多信息http://www.openbookproject.net/books/bpp4awd/ch03.html
答案 2 :(得分:0)
documentation
:该文档将map()
function
描述为将function
应用于 item
中的每个iterable
:
map(function,iterable,...)
将函数应用于iterable的每个项目并返回结果列表。
由于Python
strings
是iterables
,就像lists
一样,您可以map()
尽可能地将其传递给lists
。我们可以在iterables
中仅iterating
for-loop
显示它们for i in "1234":
print(i)
:
print
将1
2
3
4
输出:
strings
希望这可以帮助您了解为什么map
可以传递到table
。