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

Python逐行存入字符串到列表及提取驱动器盘符去重问题

嘿,这两个问题我来帮你搞定!

问题1:如何用Python将字符串逐行插入列表

其实很简单,Python里直接用字符串的split('\n')方法就能把多行字符串拆成每行对应的列表元素。举个实际例子:

# 假设你有这样的多行字符串
multi_line_text = "第一行内容\n第二行内容\n第三行内容"
# 直接拆分得到每行的列表
line_list = multi_line_text.split('\n')
print(line_list)  # 输出: ['第一行内容', '第二行内容', '第三行内容']

如果你的字符串里可能有空行,或者每行前后有多余的空格,可以加个过滤和清理:

line_list = [line.strip() for line in multi_line_text.split('\n') if line.strip()]

这样得到的列表就只会保留非空的、清理过空格的行。

问题2:提取驱动器盘符重复三次的解决方案

先说说你代码里的问题:你在循环里一直用ouput2[17](应该是拼写错误吧?比如是不是想写当前行的line[17]?),但不管怎样,这个值在整个循环里都没变化,所以每次循环都添加同一个盘符,自然会重复三次。

再看你给出的每行数据,比如1 C 1048576 30 GB IFS,盘符是每行按空格拆分后的第二个元素,用这个方式提取比固定索引可靠多了(毕竟如果前面的数字长度变了,固定索引就会出错)。

给你修正后的代码:

# 你的原始字符串
data = '''1 C 1048576 30 GB IFS
2 d 1048576 30 GB IFS
1 e 1048576 30 GB IFS'''

d = []
# 遍历每一行(如果你的原始data第一行是空行才需要加[1:],否则直接遍历所有行)
for line in data.split('\n'):
    # 跳过空行,避免报错
    if not line.strip():
        continue
    # 按空格拆分当前行的内容
    line_parts = line.split()
    # 确保拆分后有足够的元素,避免索引越界
    if len(line_parts) >= 2:
        # 取第二个元素就是盘符,加上冒号后存入列表
        drive = f"{line_parts[1]}:"
        d.append(drive)

print(d)  # 输出: ['C:', 'd:', 'e:']

这样运行后,就能得到每个盘符只出现一次的列表啦!

内容的提问来源于stack exchange,提问作者reham adel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 14:42:52