python - 如何将字符串中的小写字符和大写字符分开?

标签 python python-3.x

<分区>

考虑一个字符串:- "HeLloWOrLD"

现在我必须分开像“H”、“e”、“LlL”、“oO”、“W”、“r”、“D”这样的字符(它们应该以小而小的方式分开大写字符在同一组中)。

那我该怎么做呢?

最佳答案

如果您希望所有字母,无论是小写字母还是大写字母都在同一组中,那么这样做就可以了。 O(n) 的时间复杂度:

d = {}
for char in "HeLloWOrLD":
    lower_char = char.lower()
    d[lower_char] = d[lower_char] + char if lower_char in d else char

>>> d.values()
dict_values(['H', 'e', 'LlL', 'oO', 'W', 'r', 'D'])

如果相反,您希望所有小写字符都在同一组中,所有大写字母都在同一组中,那么您的解决方案是:

时间复杂度O(n):

str = "HeLloWOrLD"
str_lower = []
str_upper = []
for i in range(len(str)):
    if str[i].islower():
        if i != 0 and str[i-1].islower():
            str_lower[-1] = str_lower[-1] + str[i]
        else:
            str_lower.append(str[i])
    else:
        if i != 0 and str[i-1].isupper():
            str_upper[-1] = str_upper[-1] + str[i]
        else:
            str_upper.append(str[i])

>>> print(str_upper)
['H', 'L', 'WO', 'LD']
>>> print(str_lower)
['e', 'lo', 'r']

关于python - 如何将字符串中的小写字符和大写字符分开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57439883/

相关文章:

python - bash shell 将当前文件的路径存储为变量?

python numpy - 提高列余弦相似度的效率

python-3.x - 删除黑色背景并使python open cv中的grabcut输出透明

python - keras CAE 检查目标 : expected conv2d_7 to have shape (252, 252、3) 时出错,但得到形状为 (256、256、3) 的数组

Python IDLE 未在 Windows 7 上启动

python - 了解 Python 中大整数的内存分配

Python namedtuple 作为 apply_async(..) 回调的参数

python - 自定义 pytest 参数化测试名称

python - 如何向文件添加新行而不需要一次又一次追加?

python - 使用 igraph python 从图中提取某个组件