如何对特定字符串进行排序,在以下情况下(PYTHON)
How to sort specific string, in the following situation (PYTHON)
我正在尝试构建一个 Acronym Shortner(作为初学者项目)
LINK:http://pastebin.com/395ig9eC
说明:
++缩写块++
如果用户将字符串变量设置为类似 "international Business machines" 的东西 return IBM
但在...
++SORTING BLOCK++
如果用户将字符串变量设置为类似
"light amplification by the simulated emission of radiation"
我试图将整个句子拆分为:
z=string.split(" ")
l=len(z)
然后使用以下循环:
'''|排序块|'''<
for x in range(0,l,1):
esc=z[x]
if (z[x]=="by" or z[x]=="the" or z[x]=="of"):
esc=z[x+1]
emp=emp+" "+esc
print emp
但问题是当有 2 个连续的排除词时 python 把它搞砸了。
我该如何解决?
这会取句子中每个单词的第一个字母,忽略被排除的单词,然后使用 join 将这些字母放在一起。
#Python3
def make_acronym(sentence):
excluded_words = ['by', 'the', 'of']
acronym = ''.join(word[0] for word in sentence.split(' ') if word not in excluded_words)
return acronym.upper()
示例:
>>> make_acronym('light amplification by the simulated emission of radiation')
'LASER'
我正在尝试构建一个 Acronym Shortner(作为初学者项目)
LINK:http://pastebin.com/395ig9eC
说明:
++缩写块++
如果用户将字符串变量设置为类似 "international Business machines" 的东西 return IBM
但在...
++SORTING BLOCK++
如果用户将字符串变量设置为类似 "light amplification by the simulated emission of radiation"
我试图将整个句子拆分为:
z=string.split(" ")
l=len(z)
然后使用以下循环:
'''|排序块|'''<
for x in range(0,l,1):
esc=z[x]
if (z[x]=="by" or z[x]=="the" or z[x]=="of"):
esc=z[x+1]
emp=emp+" "+esc
print emp
但问题是当有 2 个连续的排除词时 python 把它搞砸了。 我该如何解决?
这会取句子中每个单词的第一个字母,忽略被排除的单词,然后使用 join 将这些字母放在一起。
#Python3
def make_acronym(sentence):
excluded_words = ['by', 'the', 'of']
acronym = ''.join(word[0] for word in sentence.split(' ') if word not in excluded_words)
return acronym.upper()
示例:
>>> make_acronym('light amplification by the simulated emission of radiation')
'LASER'