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

这个为什么能表示首字母大写?s[:1]应该表示的是adam这个整体啊,adam的索引就是S[0]啊,求解

def format_name(s):
    return s[:1].upper()+s[1:].lower()

print map(format_name, ['adam', 'LISA', 'barT'])

 

正在回答

5 回答

map函数接收一个函数和一个 list,并通过把函数依次作用在 list 的每个元素上,得到一个新的 list 并返回。就是说,def format_name(s)依次作用于‘adam’'LISA' 'barT'这三个字符串。函数的意义是取字符串的第一个字母大写,其他的字母小写

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

1、map函数是把list里的元素一个个进行format_name函数(第一个大写,之后小写)的转换

2、可以把字符串看作一个list,每个字母代表一个元素。比如第一个元素"adam"字符串,把它看作一个list,那它的第一个元素是'a',第二个元素是'd'……

3、示意图

http://img1.sycdn.imooc.com//5929b3e80001090d02020204.jpg

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

s指的不是list集合  而是list集合中的元素

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

这个不是对list进行切片,是对字符串进行切片,每次传参是字符串

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

>>> s='abcd'
>>> s[:1]
'a'
>>> s[:2]
'ab'
>>> s[:3]
'abc'
>>>

s[:1]指的是从0这个索引开始取一位的吧

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

慕粉0937231226 提问者

如果是个集合["adam",”LISA”],s[0]就是adam啊
2017-02-28 回复 有任何疑惑可以回复我~
#2

超级无敌美少女战士 回复 慕粉0937231226 提问者

s[:1]是指‘adam’里的第一个字母,这不是索引,是对list里元素进行切片。
2017-03-01 回复 有任何疑惑可以回复我~
#3

罗大黑3368409 回复 超级无敌美少女战士

那不是应该是后两个字符串嘛?应该是"LISA","barT"才对吧?是在不理解,还请指教
2017-03-21 回复 有任何疑惑可以回复我~
#4

慕工程8309199 回复 慕粉0937231226 提问者

map函数中的转换函数就是针对list中的元素做计算,所以s对应的就是list中的元素,不要搞混淆了
2017-06-07 回复 有任何疑惑可以回复我~
查看1条回复

举报

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

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

进入课程

这个为什么能表示首字母大写?s[:1]应该表示的是adam这个整体啊,adam的索引就是S[0]啊,求解

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号