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
相关产品推荐
相关产品推荐

