如何解决在Python中无需大写字母即可打印的函数
我正在尝试编写一个简单的函数,该函数接受一个字符串并返回一个字符串,而该字符串不包含原始字符串中的大写字母。我看过许多其他帖子,它们的问题与我的相似,但是其中大多数都是由于缺乏知识而无法理解的技能水平。
这是我想出的。
def no_capitals(string):
result = []
for char in string:
if not char.isupper(): result.append(char)
return (result)
print(no_capitals("X007XK"))
print(no_capitals("Xmen R cute"))
所需的输出将是:
007
men cute
但是,毫不奇怪,此函数以列表形式返回。
['0','0','7']
['m','e','n','c','u','t,'e']
所以我想我将不得不以不同的方式来解决这个问题。我对Python的了解非常有限,因此我没有很多可使用的“工具”。有人能指出我正确的方向吗?
解决方法
您可以使用''.join()
:
def no_capitals(string):
return ''.join(char for char in string if not char.isupper())
print(no_capitals("X007XK"))
print(no_capitals("Xmen R cute"))
输出:
007
men cute
,
最简单的方法是使用+=
而不是append
。如果使用append,则将char添加到列表中,而不将结果与下一个char连接在一起,并且在结果中返回带有字符的列表。
def no_capitals(string):
result = ""
for char in string:
if not char.isupper(): result += char
return (result)
print(no_capitals("X007XK"))
print(no_capitals("Xmen R cute"))
更有效的可能性是使用.join()函数。因此,请看下面。
def no_capitals(string):
result = []
for char in string:
if not char.isupper(): result.append(char)
return "".join(result)
print(no_capitals("X007XK"))
print(no_capitals("Xmen R cute"))
,
使用''.join并删除大写字母,它可以工作(感谢dan1st提供以下注释)。
-0.000547
,
保持创建的结构并仅更改最少的代码量即可:
def no_capitals(string):
#result as a string
result = ''
for char in string:
#if the character is not uppercase add it to the end of result
if not char.isupper(): result += char
return (result)
print(no_capitals("X007XK"))
print(no_capitals("Xmen R cute"))
现在给出:
007
men cute
注意:男人和可爱之间有两个空格
,string = "X007XK"
caps_omitted_string = filter(lambda c: not c.isupper(),string)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。