为了账号安全,请及时绑定邮箱和手机立即绑定

既然s是一个list, 为什么s[0]不是第一个字符串adam,而是每个字符串的首字母呢?

如题,本来想用2个for循环来遍历每个字符串的各个字母,比如把首字母大写:s[i][0].upper(), 看了答案后,发现自己想多了,为什么s[0]可以代表各个字符串的首字母呢?

正在回答

8 回答

其实可以这样理解,map()中的list列表里的每一个元素依次进入format_name中去执行s[0].upper()+s[1:].lower()这个操作(其实就是for循环的过程),s[0]指的是原先list中进入的元素的首字母(下标为0),最后以一个新列表的形式出来,自然就是['Adam', 'Lisa', 'Bart']

2 回复 有任何疑惑可以回复我~

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)


 


2 回复 有任何疑惑可以回复我~

s=abcsd

s[0]=a           应该是这样吧我也是菜

0 回复 有任何疑惑可以回复我~

嗯,我也犯这个错误了。我理解下来差不多是这样,map遍历列表里的每一个元素,map所接收的两个参数,第一个参数是函数,第二个参数是列表。那第一个函数参数:所接收的参数是列表的每一个元素而不是整个列表。所以这里的s是列表里的第一个字符串,s[0]是第一个字符串的第一个字符。https://img1.sycdn.imooc.com//5bffe5d00001395012020135.jpg

4 回复 有任何疑惑可以回复我~
#1

慕先生5781448

有一点打错了,不是第一个字符串,是每一个字符串
2018-11-29 回复 有任何疑惑可以回复我~

因为map就是要遍历每一个元素 所以s就是每一个字符串的意思 s[0]就是字符串的首字母吧

0 回复 有任何疑惑可以回复我~

s代表一个字符串 然后依次用map()函数依次作用

0 回复 有任何疑惑可以回复我~

s[0]是第一个字符串吧。

0 回复 有任何疑惑可以回复我~

所谓字符串, 是指在一对引号内的所有字符组成的整体, 其中的字母数字空格或其他符号都是一个字符. 如 "python is good!"被看作是一个字符串, 里面的字母"p"或空格" "其实是被一视同仁地认作一个字符, 所以也就没有单词的概念了. 一个字符串中的所有字符都用一维索引, 即s[i].

换个角度看, 计算机就是个机器, 它并不具备人的分析理解能力, 所以在看到一串字符的时候它并不会自动去按照空格分割单词, 机器分割单词更近似于人的阅读理解, 其实已经有点涉及自然语言处理这一大具体的应用了.

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

既然s是一个list, 为什么s[0]不是第一个字符串adam,而是每个字符串的首字母呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信