为什么map的参数可以是字符串?

时间:2017-10-07 08:51:00

标签: python map-function

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'可以是一个字符串,不应该是一个列表吗?

3 个答案:

答案 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 stringsiterables,就像lists一样,您可以map()尽可能地将其传递给lists。我们可以在iterables中仅iterating for-loop显示它们for i in "1234": print(i)

print

1 2 3 4 输出:

strings

希望这可以帮助您了解为什么map可以传递到table