如何将List[str]转换为List[list]?Python列表格式转换问题
解决List[str]转List[list]的格式转换问题
你之前用split(", ")无效,是因为目标字符串里根本没有", "这个分隔符,split找不到匹配项时会直接返回包含原字符串的单元素列表,自然达不到预期效果。
正确实现方法
你的需求是把每个4字符的字符串拆成两个2字符的子串并组成嵌套列表,直接按字符位置分割即可,以下是两种常用实现方式:
方法1:列表推导式(简洁高效)
incorrect_format_list = ['AsKh', '2sAc', '7hQs'] correct_format_list = [[s[:2], s[2:]] for s in incorrect_format_list] print(correct_format_list)
输出结果:
[['As', 'Kh'], ['2s', 'Ac'], ['7h', 'Qs']]
方法2:普通循环(直观易理解)
incorrect_format_list = ['AsKh', '2sAc', '7hQs'] correct_format_list = [] for card_pair in incorrect_format_list: # 截取前2位和后2位字符,组成子列表 split_pair = [card_pair[:2], card_pair[2:]] correct_format_list.append(split_pair) print(correct_format_list)
输出结果和上面完全一致。
通用场景补充
如果你的字符串长度不固定(比如存在特殊长度的元素),可以用按步长分割的通用方法:
def split_by_n(s, n=2): return [s[i:i+n] for i in range(0, len(s), n)] correct_format_list = [split_by_n(item) for item in incorrect_format_list]
这个方法能适配任意长度的字符串,按每n个字符分割成子元素。
内容的提问来源于stack exchange,提问作者Elio
相关产品推荐
相关产品推荐

