搜索

首页  >  问答  >  正文

python - 如何让列表所有元素首字母变大写?

希望列表 c 所有元素首字母变大写,这样写为甚么会出错?该如何写?

1

2

3

4

5

<code>c=['zz','yy','xx']

c[0:2]=c[0:2].capitalize()

 

# 提示错误

AttributeError: 'list' object has no attribute 'capitalize'</code>

大家讲道理大家讲道理2809 天前1612

全部回复(5)我来回复

  • 巴扎黑

    巴扎黑2017-04-17 17:52:28

    capitalize 是字串的方法,而 c[0:2] 是一个 list,所以你调用 captitalize 的时候会出错. capitalize 是字串的方法,而 c[0:2] 是一個 list,所以你調用 captitalize 的時候會出錯.

    1

    2

    <code>c = ['zz','yy','xx']

    c = [string.capitalize() for string in c]</code>

    還有這樣也可以:

    1

    2

    <code>c = ['xx', 'yy', 'zz']

    c = ' '.join(c).title().split()</code>

    P.S. 在使用 list 的時候,如果要操作的是整個串列,那不需要特別使用到切片,c[0:2] 在這裡是個不必要的做法.

    給你參考!


    @moling3650, 使用 title 真的是個有趣的主意,capitalize 只會將字串的首字大寫,而 title

    1

    2

    3

    4

    5

    <code>>>> string = 'my name is dokelung'

    >>> string.capitalize()

    'My name is dokelung'

    >>> string.title()

    'My Name Is Dokelung'</code>

    还有这样也可以:

    1

    2

    3

    <code>>>> c = ['xx', 'yy', 'zz']

    >>> ' '.join(c).title().split()

    ['Xx', 'Yy', 'Zz']</code>

    P.S. 在使用 list 的时候,如果要操作的是整个串列,那不需要特别使用到切片,c[0:2] 在这里是个不必要的做法.

    给你参考!


    @moling3650, 使用title 真的是个有趣的主意,capitalize 只会将字串的首字大写,而title 则会将字串中所有的🎜单字🎜 首字大写。 🎜 🎜见范例:🎜 rrreee 🎜所以这样也行:🎜 rrreee

    回复
    0
  • ringa_lee

    ringa_lee2017-04-17 17:52:28

    雷雷

    回复
    0
  • 迷茫

    迷茫2017-04-17 17:52:28

    写个不一样的

    1

    <code>c = [_.title() for _ in c]</code>

    回复
    0
  • 黄舟

    黄舟2017-04-17 17:52:28

    list对象没有capitalize方法

    回复
    0
  • 巴扎黑

    巴扎黑2017-04-17 17:52:28

    写个不一样的

    1

    <code>map(str.title, c[0:2])</code>

    回复
    0
  • 取消回复