Python3无导入:列表元素按数字-字符配对并忽略开头空串
解决Python列表的数字-字符配对需求
我来帮你搞定这个配对问题!首先咱们先明确需求核心:跳过开头的空串,把每一个数字元素和它后面紧跟着的字符元素配对,最后一个数字没有后续元素的话就和空串配对,还要把数字转换成整数类型。
实现思路
- 先跳过原列表开头的空字符串,从第一个有效元素(也就是
'0')开始处理; - 以两步为一组遍历处理后的列表:每组的第一个元素是数字字符串,把它转成整数;第二个元素就是对应的配对字符;
- 当遍历到最后一个元素(它是数字,没有下一个元素)时,就给它配对空字符串。
代码实现
string = ['', '0', 'A', '0', 'B', '1', 'B', '2', 'A', '4'] # 跳过开头的空串,得到有效元素列表 processed_list = string[1:] result = [] # 以步长2遍历,每次取数字元素的索引 for i in range(0, len(processed_list), 2): # 把数字字符串转成整数 num = int(processed_list[i]) # 如果有下一个元素就取它,否则用空串 char = processed_list[i+1] if (i+1) < len(processed_list) else '' result.append((num, char)) print(result) # 输出:[(0, 'A'), (0, 'B'), (1, 'B'), (2, 'A'), (4, '')]
代码解释
processed_list = string[1:]:直接切片去掉原列表第一个空元素,拿到我们需要处理的有效序列;range(0, len(processed_list), 2):生成的索引是0、2、4、6、8,正好对应所有数字元素的位置;- 三元表达式
char = processed_list[i+1] if (i+1) < len(processed_list) else '':完美处理最后一个数字没有后续元素的情况,自动配对空串; - 最后把每一组的(数字, 字符)元组加入结果列表,就得到了符合要求的输出。
内容的提问来源于stack exchange,提问作者Emma LeAir
相关产品推荐
相关产品推荐

