Python通过字符计数在列表中连接字符串的最简单方法,无需导入

2024-03-29 07:26:14 发布

您现在位置:Python中文网/ 问答频道 /正文

使用Python3,不允许导入

我有一个列表,我想将数字与下一个字母(例如:('0','a')组合起来,忽略开头的空字符串,但有一个空字符串与4配对(例如:('4','')

string = ['', '0', 'A', '0', 'B', '1', 'B', '2', 'A', '4']

然后输出如下所示:

[(0, 'A'), (0, 'B'), (1, 'B'), (2, 'A'), (4, '')]

Tags: 字符串列表string字母数字python3
3条回答

它可以用更少的行来完成,但是我认为这更容易理解

string = ['', '0', 'A', '0', 'B', '1', 'B', '2', 'A', '4']


def joinalnum(my_string):

    def push_back_non_alnums(my_string):
    # Sends all non alphanumeric values to the back of the list
        non_alnums = []
        for index, element in enumerate(my_string):
            if not element.isalnum():
                non_alnums.append(my_string.pop(index))
        return my_string + non_alnums

    def couple(my_string):
        return list(zip(my_string[::2], my_string[1::2]))

    my_string = push_back_non_alnums(my_string)
    my_string = couple(my_string)

    return my_string


if __name__ == '__main__':
    print(joinalnum(string))

也许是这样的

string.append(string[0])
new = []
for i in range(1, len(string) - 1, 2):
    new.append((int(string[i]), string[i + 1]))
>>> new

[(0, 'A'), (0, 'B'), (1, 'B'), (2, A), (4, '')]

假设string有一个有效的形式,它将是

>>> string = ['0', 'A', '0', 'B', '1', 'B', '2', 'A', '4', '']
>>> list(zip(string[::2], string[1::2]))
[('0', 'A'), ('0', 'B'), ('1', 'B'), ('2', 'A'), ('4', '')]

我认为你可以自己处理这些''的开头和结尾,并将string的形式调整到正确的形式

相关问题 更多 >