如何将二维数组中的每个子数组转换为字符串?
解决二维字符数组转一维字符串数组的问题
嘿,这个问题其实很简单,核心就是用Python的str.join()方法!你之前可能是没找对使用的地方——得对每个子数组单独调用join,而不是直接对整个二维数组操作。
核心方法说明
对于每个由字符组成的子数组,比如['a','b','c'],只需要用空字符串''调用join()方法,就能把字符列表拼接成完整字符串:
''.join(['a', 'b', 'c']) # 输出结果:'abc'
修改你的代码
你的组合生成逻辑完全没问题,只需要调整收集结果的部分就行。原来的arr.append(element)是把字符列表直接加入数组,现在改成把列表转成字符串再添加,甚至可以用列表推导式让代码更简洁:
def combs(a): if len(a) == 0: return [[]] cs = [] for x in combs(a[1:]): cs = cs + [x, x+[a[0]]] return cs a = ["J","a","m","e","s"] c = combs(a[::-1]) # 直接用列表推导式生成字符串数组 arr = [''.join(elem) for elem in c] print(arr)
为什么之前的尝试没成功?
如果之前你直接对整个二维数组用join()(比如''.join(arr)),肯定会报错——因为join()要求可迭代对象里的元素必须是字符串/单个字符,而你原来的arr里装的是列表,所以必须遍历每个子数组,逐个处理才行。
这样修改后,你的arr就会变成全是字符串的一维数组啦!
内容的提问来源于stack exchange,提问作者Sadaan Saleem
相关产品推荐
相关产品推荐

