python字符串大小写转换及list和str转换

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lijinshanba/article/details/85319823

1.字符串的编码

问题一:能不能像C语言那样用  ch = ch +32  来把大写的字符编程小写的?
可以的,如下所示:

s = chr(ord(s) - 32)

先用ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符

python使用UTF-8编码模式。不过可能是因为在python中字符不用int类型,不像C语言那样,所以大小写转化时不能直接相加减,而是要用ord()和chr()两个函数转化一下。

2.字符串和list的转化

字符串是不是一个list,能不能像操作list一样操作它?

字符串可以当成是一个list,不过在这之前要做一下简单的变换,比如

str = 'hello'
str[0] = 'A'
print(str[0])

报错,信息为 

TypeError: 'str' object does not support item assignment

因此更改代码:

str = 'sdfsfsfsf'
str = list(str)
str[0] = 'A'
print(str[0])

把str转化成一个list,这个时候就再报错了。

看下图:

['A', 'd', 'a', 'm'] 是  字符串'Adam'的list形式,'LISA'是正常的str形式。

list如何转化成str?

str = ''.join(str)

结果变成

发现了吧,和刚刚不一样吧。  

其实就是一个空字符串用join函数加上了一个list类型的对象。

如果是

str = '*****'.join(str)

结果为

最后

写这篇文章的原因是今天再看廖雪峰python的map/reduce教程,其中一道作业就是:

利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。输入:['adam', 'LISA', 'barT'],输出:['Adam', 'Lisa', 'Bart']
完整代码如下:

def lowercase2uppercase(str):
    if str[0]>='a' and str[0]<='z':
        str = list(str)
        str[0] = chr(ord(str[0]) - 32)
        str = ''.join(str)
        print('str' + str[0])
        pass
    return str

L1 = ['adam', 'LISA', 'barT']
result = list(map(lowercase2uppercase,L1))
print(result)

猜你喜欢

转载自blog.csdn.net/lijinshanba/article/details/85319823