如何利用存储多行内容的变量随机打印指定行数?
解决随机打印多行字符串中2行的问题
嘿,我来帮你搞定这个需求~先看看你代码里的小问题:你的myline是一个普通的字符串变量,但readlines()是文件对象专属的方法,直接在字符串上调用会抛出AttributeError哦,这就是代码跑不通的原因。
下面是修正后的完整方案,我会一步步解释:
步骤拆解
- 把多行字符串转成行列表:用字符串的
splitlines()方法,它能自动识别各种换行符(\n、\r\n都没问题),把每一行拆成列表的独立元素,还能自动忽略字符串末尾可能的空行。 - 随机选取2行:你用
random.sample()的思路完全正确,这个方法会从列表里随机选出指定数量的不重复元素。 - 美观地打印结果:如果直接打印
random.sample()的返回值,会输出带括号和引号的列表格式,用循环遍历打印能让每行单独显示,更符合预期。
修正后的代码
import random myline = "This is line 1 \nThis is line 2 \nThis is line 3 \nThis is line 4 \nThis is line 5 " # 将多行字符串分割为行列表 lines = myline.splitlines() # 随机挑选2行 random_lines = random.sample(lines, 2) # 逐个打印选中的行 for line in random_lines: print(line)
额外小提示
如果你的字符串里有些行带有多余的首尾空格,想要清理的话,可以在分割后加上strip()处理:
lines = [line.strip() for line in myline.splitlines()]
这样就能得到干净无多余空格的行列表啦~
内容的提问来源于stack exchange,提问作者Rajiv
相关产品推荐
相关产品推荐

