课程
/后端开发
/Python
/python进阶
如题,本来想用2个for循环来遍历每个字符串的各个字母,比如把首字母大写:s[i][0].upper(), 看了答案后,发现自己想多了,为什么s[0]可以代表各个字符串的首字母呢?
2018-11-14
源自:python进阶 2-4
正在回答
其实可以这样理解,map()中的list列表里的每一个元素依次进入format_name中去执行s[0].upper()+s[1:].lower()这个操作(其实就是for循环的过程),s[0]指的是原先list中进入的元素的首字母(下标为0),最后以一个新列表的形式出来,自然就是['Adam', 'Lisa', 'Bart']
map(函数名,list)
map函数两个参数的意思是 :参数1(是个函数)遍历接收参数list里的元素
比如说
list = [1,2,3,4];
def f(x): return x*x
那么 result = map(f,list) 的结果就是 [f(1),f(2),f(3),f(4)]
所以map(f,list)的本质其实可以理解为
L=[];
for x in list:
L.append(x*x)
s=abcsd
s[0]=a 应该是这样吧我也是菜
嗯,我也犯这个错误了。我理解下来差不多是这样,map遍历列表里的每一个元素,map所接收的两个参数,第一个参数是函数,第二个参数是列表。那第一个函数参数:所接收的参数是列表的每一个元素而不是整个列表。所以这里的s是列表里的第一个字符串,s[0]是第一个字符串的第一个字符。
慕先生5781448
因为map就是要遍历每一个元素 所以s就是每一个字符串的意思 s[0]就是字符串的首字母吧
s代表一个字符串 然后依次用map()函数依次作用
s[0]是第一个字符串吧。
所谓字符串, 是指在一对引号内的所有字符组成的整体, 其中的字母数字空格或其他符号都是一个字符. 如 "python is good!"被看作是一个字符串, 里面的字母"p"或空格" "其实是被一视同仁地认作一个字符, 所以也就没有单词的概念了. 一个字符串中的所有字符都用一维索引, 即s[i].
换个角度看, 计算机就是个机器, 它并不具备人的分析理解能力, 所以在看到一串字符的时候它并不会自动去按照空格分割单词, 机器分割单词更近似于人的阅读理解, 其实已经有点涉及自然语言处理这一大具体的应用了.
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计