如何使用map()将列表中字符串的单个字符各重复三次,而非重复整个字符串
问题原因
你当前编写的map(lambda n:n*3, eight_bit_binary)逻辑是直接将每个完整的8位二进制字符串整体重复3次,没有遍历字符串内部的单个字符做单独重复,因此不符合需求。
解决方案
写法1:列表推导式(最推荐,简洁易读)
直接通过两层遍历实现每个字符单独重复3次后拼接:
eight_bit_binary = [''.join(c * 3 for c in s) for s in eight_bit_binary]
写法2:调整map逻辑(兼容原有写法习惯)
修改lambda内部逻辑,对每个字符串的字符单独处理:
eight_bit_binary = list(map(lambda s: ''.join(c * 3 for c in s), eight_bit_binary))
注:加list()是因为Python3中map返回迭代器,转成列表和你原来的数据格式保持一致
写法3:显式for循环(适合理解逻辑)
如果需要更清晰的分步执行逻辑,可以用嵌套for循环实现:
processed_list = [] for binary_str in eight_bit_binary: temp_str = "" for bit in binary_str: temp_str += bit * 3 processed_list.append(temp_str) eight_bit_binary = processed_list
效果验证
以你给出的第一个元素'01101000'为例,上述代码处理后结果为"000111111000111000000000",完全符合预期要求。
内容的提问来源于stack exchange,提问作者if fhhf
相关产品推荐
相关产品推荐

