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

初学Python,因为某些原因电脑只能装3.1版本,现遇到这个小问题求解答

程序想实现单词首字母大小写变换,可是结果list每个元素都分成了一个list,不知道问题在哪里,也无法实现,求问原因个5ad71fef00010f0306580137.jpg
5ad71ff30001248c06580127.jpg

正在回答

5 回答

map()函数的特性:

map(function, iterable, ...)会根据提供的函数对指定序列做映射。第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
a = ['adam','lisa']
L = [x[0].upper() + x[1:] for x in a]
print(L)
1 回复 有任何疑惑可以回复我~
#1

少年听雨0 提问者

谢谢,看样子map还不能乱用啊
2018-04-19 回复 有任何疑惑可以回复我~
#2

少年听雨0 提问者

但是还有一个问题,list的元素不该是比如第一个元素应该是'adam',还是单单一个'a'
2018-04-19 回复 有任何疑惑可以回复我~
#3

少年听雨0 提问者

现在懂了,想太多了,我的代码既然用了map后面就不用for in了,尴尬?
2018-04-19 回复 有任何疑惑可以回复我~
#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
任务:
假设用户输入的英文名字不规范,没有按照首字母大写,后续字母小写的规则,
请利用map()函数,把一个list(包含若干不规范的英文名字)变成一个包含规范英文名字的list:
输入:['adam', 'LISA', 'barT']
输出:['Adam', 'Lisa', 'Bart']
'''

# 第一种方法
L = ['adam', 'LISA', 'barT']
def f(x):
    return x.title()  # title方法 将字符串转换成标题,即首字母大写,其他字母小写
print map(f, L)

# 第二种方法
import string
def f(x):
    return string.capwords(x)  # 为了将首字母大写,其他字母小写,可以调用string模块的capword函数进行转换
print map(f, ['adam', 'LISA', 'barT'])


# 第三种方法
# Python capitalize()将字符串的第一个字母变成大写,其他字母变小写。
def f(x):
    return x.capitalize()
print map(f, ['adam', 'LISA', 'barT'])


0 回复 有任何疑惑可以回复我~
#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
任务:
假设用户输入的英文名字不规范,没有按照首字母大写,后续字母小写的规则,
请利用map()函数,把一个list(包含若干不规范的英文名字)变成一个包含规范英文名字的list:
输入:['adam', 'LISA', 'barT']
输出:['Adam', 'Lisa', 'Bart']
'''

# 第一种方法
L = ['adam', 'LISA', 'barT']
def f(x):
    return x.title()  # title方法 将字符串转换成标题,即首字母大写,其他字母小写
print map(f, L)

# 第二种方法
import string
def f(x):
    return string.capwords(x)  # 为了将首字母大写,其他字母小写,可以调用string模块的capword函数进行转换
print map(f, ['adam', 'LISA', 'barT'])


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

map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。

  format_name(s),这里传入的 s 已经是list的每一个元素了,for x in s 则是迭代取 s 的每一个元素了 

0 回复 有任何疑惑可以回复我~
= ['adam','lisa']

print([x.title() for x in a])

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

少年听雨0 提问者

感谢,虽然可能不是我真的想问的
2018-04-19 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

初学Python,因为某些原因电脑只能装3.1版本,现遇到这个小问题求解答

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