Python - 通过没有导入

时间:2018-03-31 20:52:53

标签: python python-3.x

使用Python3,不允许导入

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

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

然后输出如下:

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

4 个答案:

答案 0 :(得分:1)

假设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设置为正确的形式。

答案 1 :(得分:0)

zip([int(i) for i in string[1::2]],string[2::2]).append((4, ''))

答案 2 :(得分:0)

也许是这样的?

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, '')]

答案 3 :(得分:0)

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

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))