python 修改string的值

修改字符串的值

string是一种不可变的数据类型,尝试修改string的值,python会报错:
“TypeError: ‘str’ object does not support item assignment”

把字符串的某一位大小写变换

Python为string对象提供了转换大小写的方法:upper() lower()。还不止这些,Python还为我们提供了首字母大写,其余小写的capitalize()方法,以及所有单词首字母大写,其余小写的title()方法。

#!/usr/bin/python
# coding=utf-8
st = 'hEllO pyTHon'
print (st.upper())
print (st.lower())
print (st.title())
print (st.capitalize())

输出结果:

HELLO PYTHON
hello python
Hello Python
Hello python

但是要把字符串的某一位进行大小写变换,要注意string本身是不可变数据类型
如:实现首字母大写,其他小写
输入:[‘adam’, ‘LISA’, ‘barT’],输出:[‘Adam’, ‘Lisa’, ‘Bart’]

# -*- coding:utf-8 -*-

def normalize(name):
   name.lower()
   name[0] = name[0].upper()
   return name

L1 = ['adam', 'LISA', 'barT']
L2 = list(map(normalize, L1))
'''
map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回'''
print(L2)

上面代码会报错:TypeError: ‘str’ object does not support item assignment

修改:

# -*- coding:utf-8 -*-

def normalize(name):
   name.lower()
   newname = name[0].upper()+ name[1:]
   #string本身是不可改变的对象,但是生成了一个新的对象
   return newname

L1 = ['adam', 'LISA', 'barT']
L2 = list(map(normalize, L1))
'''
map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回'''
print(L2)

把字符串中某些特定的字符大小写变换

如:大写语句中每个元音字母

  • 使用列表作为临时变量,然后使用join()把列表转字符串
# /usr/bin/python
# -*- coding:utf-8 -*-

L1 = ['a','e','i','o','u']
L2 = 'hello world'
L = []
for i in L2 :
    if i in L1:
        i = i.upper()
        L.append(i)
    else:
        L.append(i)
L = ''.join(L) #列表转字符串
print(L)

join(): 连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串

join()函数
语法: ‘sep’.join(seq)
参数说明
sep:分隔符。可以为空
seq:要连接的元素序列、字符串、元组、字典
上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串
返回值:返回一个以分隔符sep连接各个元素后生成的字符串

  • 或者直接使用字符串作为中间变量
owel = ['a','e','i','o','u']
s = 'hello world'
s2 = ''
for i in s:
    if i in owel:
        s2 = s2 + i.capitalize()
    else:
        s2 = s2 +i
print(s2)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值