2024-04-25 05:32:35 发布
网友
#input my_string = 'abcdefgABCDEFGHIJKLMNOP'
如何从字符串中提取所有上半部分?
#output my_upper = 'ABCDEFGHIJKLMNOP'
import string s = 'abcdefgABCDEFGHIJKLMNOP' s.translate(None,string.ascii_lowercase)
string.translate(s, table[, deletechars])函数将从字符串中删除deletechars中的所有字符,这是一个字符列表。然后,字符串将使用table进行转换(在本例中我们不使用它)。
要仅删除小写字母,需要将string.ascii_lowercase作为要删除的字母列表传递。
table不是,因为当表是None时,将只执行字符删除步骤。
table
None
更高阶的救援功能!
filter(str.isupper, "abcdefgABCDEFGHIJKLMNOP")
编辑:如果您不知道过滤器的作用:过滤器接受一个函数和一个iterable,然后将该函数应用于iterable中的每个元素。它保留所有返回true的值,并抛出所有其他值。因此,这将返回“ABCDEFGHIJKLMNOP”。
使用列表理解:
>>> s = 'abcdefgABCDEFGHIJKLMNOP' >>> ''.join([c for c in s if c.isupper()]) 'ABCDEFGHIJKLMNOP'
使用生成器表达式:
>>> ''.join(c for c in s if c.isupper()) 'ABCDEFGHIJKLMNOP
也可以使用正则表达式执行此操作:
>>> re.sub('[^A-Z]', '', s) 'ABCDEFGHIJKLMNOP'
string.translate(s, table[, deletechars])函数将从字符串中删除deletechars中的所有字符,这是一个字符列表。然后,字符串将使用table进行转换(在本例中我们不使用它)。
要仅删除小写字母,需要将string.ascii_lowercase作为要删除的字母列表传递。
table
不是,因为当表是None
时,将只执行字符删除步骤。更高阶的救援功能!
编辑:如果您不知道过滤器的作用:过滤器接受一个函数和一个iterable,然后将该函数应用于iterable中的每个元素。它保留所有返回true的值,并抛出所有其他值。因此,这将返回“ABCDEFGHIJKLMNOP”。
使用列表理解:
使用生成器表达式:
也可以使用正则表达式执行此操作:
相关问题 更多 >
编程相关推荐