You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python非Pandas环境下拆分字符串为单个字符的优化方案求助

原生Python实现嵌套列表中字符串拆分为单个字符列表

问题背景

我正在练习数据清洗,限制条件为不能使用Pandas,仅使用原生Python。数据集是一个嵌套列表:

dataset = [["My name is Anas", 1.92],["I am data Scientist",1.88],["I am Studying BSCS",2.0]]

每个子列表中的浮点数用于确认这是多值嵌套列表。我当前的代码是:

for i in dataset:
    for j in i:
       print(j[0].split())

这段代码会输出按单词拆分的列表(比如["My","Name","is","Anas"]),但我需要把字符串拆分为单个字符的列表,两种目标格式:

  • 扁平化的单个字符列表:
    ["M","y","N","a","m","e","i","s","A","n","a","s"]
    
  • 保持嵌套结构的单个字符列表:
    [['M', 'y', 'n', 'a', 'm', 'e', 'i', 's', 'A', 'n', 'a', 's'],[ 'I', 'a', 'm', 'd', 'a', 't', 'a', 'S', 'c', 'i', 'e', 'n', 't', 'i', 's', 't'], ['I', 'a', 'm', 'S', 't', 'u', 'd', 'y', 'i', 'n', 'g', 'B', 'S', 'C', 'S']]
    

解决方案

实现嵌套式单个字符列表(保留原数据结构)

遍历原数据集的每个子列表,只处理字符串元素、跳过浮点数;对每个字符串过滤空格后,拆分出单个字符组成子列表,最后收集所有结果:

dataset = [["My name is Anas", 1.92],["I am data Scientist",1.88],["I am Studying BSCS",2.0]]

result = []
for item in dataset:
    for element in item:
        if isinstance(element, str):
            # 过滤空格并拆分字符
            char_list = [c for c in element if c != ' ']
            result.append(char_list)

print(result)

输出结果:

[['M', 'y', 'n', 'a', 'm', 'e', 'i', 's', 'A', 'n', 'a', 's'], ['I', 'a', 'm', 'd', 'a', 't', 'a', 'S', 'c', 'i', 'e', 'n', 't', 'i', 's', 't'], ['I', 'a', 'm', 'S', 't', 'u', 'd', 'y', 'i', 'n', 'g', 'B', 'S', 'C', 'S']]

实现扁平化单个字符列表

如果需要把所有字符合并到一个列表中,只需将每个字符列表的元素直接合并到结果列表:

dataset = [["My name is Anas", 1.92],["I am data Scientist",1.88],["I am Studying BSCS",2.0]]

flat_result = []
for item in dataset:
    for element in item:
        if isinstance(element, str):
            # 过滤空格后逐个添加字符到扁平列表
            flat_result.extend([c for c in element if c != ' '])

print(flat_result)

输出结果:

['M', 'y', 'n', 'a', 'm', 'e', 'i', 's', 'A', 'n', 'a', 's', 'I', 'a', 'm', 'd', 'a', 't', 'a', 'S', 'c', 'i', 'e', 'n', 't', 'i', 's', 't', 'I', 'a', 'm', 'S', 't', 'u', 'd', 'y', 'i', 'n', 'g', 'B', 'S', 'C', 'S']

代码说明

  • 用isinstance(element, str)判断元素类型,确保只处理字符串、跳过浮点数;
  • 列表推导式[c for c in element if c != ' ']快速完成空格过滤和字符拆分;
  • 嵌套结构用append添加子列表,扁平化结构用extend直接合并元素。

内容的提问来源于stack exchange,提问作者Muhammad Anas Atiq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 11:46:02