Python刷题笔记(4)- 字符串重组
2015-11-19 10:32
986 查看
题目:
Complete the method/function so that it converts dash/underscore delimited words into camel casing. The first word within the output should be capitalized only if the original word was capitalized.Examples:
# returns "theStealthWarrior" to_camel_case("the-stealth-warrior") # returns "TheStealthWarrior" to_camel_case("The_Stealth_Warrior")
中文简介:
其实就是去掉字符串中的‘-’或‘_‘连接符,然后除去第一个单词外,其他单词首字母大写连接想法:
1、历遍字符串,找到单词间隔符’-‘和’_',然后通过两次循环找到首尾的间隔符,提取中间的单词,并让首字母大写2、输入空字符串,返回空字符串
3、寻找第一个单词和最后一个单词,第一个单词通过一次历遍寻找第一个间隔符,然后跳出循环,最后一个单词通过储存最后次首间隔符的循环数,然后查找出后面的单词
实现:
def to_camel_case(text):if text == '':
return ''
list = []
for i in range(len(text)):
if text[i] == '-' or text[i] == '_':
list.append(text[:i])
break
for i in range(len(text)):
if text[i] == '-' or text[i] == '_':
for j in range(i+1,len(text)):
if text[j] == '-' or text[j] == '_':
list.append(text[i+1].upper() + text[i+2:j])
break
k = i
list.append(text[k+1].upper() + text[k+2:])
return ''.join(list)
对比总结:
这种实现方法比较笨拙,采用耿直的思想来进行。通过测试提交后,才恍然大悟应该用split()函数来分割啊,这样就简单多了,根本不需要自己去历遍查找间隔符……通过replace()函数来替代统一间隔符,然后使用split()进行分割,立刻就能得到单词列表,然后用capitalize()函数将后面的单词首字母大写就行了……
def to_camel_case(text):
if text == '':
return ''
list =[string.capitalize() for string in text.replace('-','_').split('_')]
return text[0] + ''.join(list)[1:]
相关文章推荐
- Python条件语句
- Python基础学习-爬虫小试3爬知乎用户小测
- IP代理池的Python实现
- Python单元测试框架之pytest -- fixtures
- Python运算符
- Python基础之字符串处理方法的总结
- ubuntu多版本python无法导入sqlite3的解决方法
- python之列表集合加减与或的计算
- 4.1 - Python Statements
- python之计算两数的最大公约数和最小公倍数
- python之类定义
- python之转换文本为QR二维码
- python之多线程socket服务实现
- python之socket实现简单的Each服务
- python之auto鼠标/键盘事件
- python之生成文件/目录的md5值
- python之生成Qt pro文件
- python之扫描本地信息到Solr服务
- python之自动生成table网页(行列可指定)
- python之读取Excel数据