我有字符串:
n = 'my fancy extension'
带
''.join([ x.capitalize() for x in n.split() ])
我得到MyFancyExtension
,但我需要myFancyExtension
。
如果只列出一个单词,如何避免大写列表中的第一项,或者根本没有大写?
答案 0 :(得分:2)
在python 3中,你可以这样做:
n = 'my fancy extension'
first,*rest = n.split()
''.join([first] + [x.capitalize() for x in rest])
Out[10]: 'myFancyExtension'
python 2没有花哨的extended tuple unpacking语法,所以你需要一个额外的步骤(哦不!):
spl = n.split()
first,rest = spl[0],spl[1:]
答案 1 :(得分:2)
>>> n = 'my fancy extension'
>>> array = n.split()
>>> array[0] + ''.join(map(str.capitalize, array[1:]))
'myFancyExtension'
答案 2 :(得分:2)
不喜欢密集的单行,但是:
>>> words = "my fancy extension"
>>> ''.join([x.capitalize() if i else x for (i, x) in enumerate(words.split())])
'myFancyExtension'
答案 3 :(得分:2)
所以,python中没有任何东西,所以我可以说'。#。 x.capitalize()for x in l --if x not first elmnt--]),part between - 是一些指数测试?
实际上你可以使用Python的三元组来实现这样的效果:
x if Condition else y
或者,在这种情况下,
x.capitalize() if Condition else x.lower()
例如:
>>> def camel(my_string):
... my_list = my_string.split()
... return ''.join([x.lower() if x is my_list[0] else x.capitalize() for x in my_list])
>>> camel("lovely to be here")
'lovelyToBeHere'
在哪里' x'是一个字符串,'条件'是if x is my_list[0]
,这两个选项当然是x.lower()
和x.capitalize()
。
也很好,因为如果你搞砸了第一部分它会为你小写它:)
>>> camel("WHat is the problem")
'whatIsTheProblem'
>>>
在大多数语言中,它都是if Condition x else y
命令,而不是x if Condition else y
,所以很多Python人都不喜欢它,但我个人认为Python的三元版很酷
答案 4 :(得分:1)
l = n.split()
if len(l)>1:
print l[0] + ''.join([ x.capitalize() for x in l[1:] ])
else:
print l[0]
或
import re
print re.sub(" ([a-z])", lambda s: s.group(1).upper(), n)
答案 5 :(得分:1)
n = 'my fancy extension'
n = n.title()
n = n.replace(" ", "")
n = n[0].lower() + n[1:]
print(n)