使用Python3,不允许导入
我有一个列表,我希望将下一个字母的数字组合起来(例如:' 0',' A')并忽略开头的空字符串但是有一个空字符串与4对(例如:' 4','')
string = ['', '0', 'A', '0', 'B', '1', 'B', '2', 'A', '4']
然后输出如下:
[(0, 'A'), (0, 'B'), (1, 'B'), (2, 'A'), (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))