【问题标题】:How do you only print first 4 strings inside a list?你如何只打印列表中的前 4 个字符串?
【发布时间】:2019-10-25 13:56:39
【问题描述】:

我有一段代码可以对外部文件中的数据列表进行排序,我需要打印该文件中的前 4 行。

我试过到处搜索都没有成功。

f=open('SortWin.txt', 'r')
if f.mode == 'r':
winList = f.read()
print('\nHere are the Top 4 Players\n[Score][Name]')
#Need to change winList to only the first 4 names here
print(winList)
f.close()

我的外部文件“SortWin.txt”如下所示:

11 Tom
16 Tom
18 Ben
20 Tom
21 Ben
23 Tom
36 Tom
42 Tom
45 Tom
46 Tom
98 Ben
99 Tom

当前输出为:

11 Tom
16 Tom
18 Ben
20 Tom
21 Ben
23 Tom
36 Tom
42 Tom
45 Tom
46 Tom
98 Ben
99 Tom

我需要这个作为输出:

11 Tom
16 Tom
18 Ben
20 Tom
21 Ben

谢谢

【问题讨论】:

  • print(winList.split("\n")[:4]) ?作为旁注,您的预期输出包含 5 个元素:)
  • @CristiFati 你有 20k 积分但仍然不遵守社区的指导方针?评论不回复stackoverflow.com/help/privileges/comment
  • @MatheusGomes:我非常了解这些准则。但是我没有足够的细节来发布答案(很有可能是正确的),因为我不知道文件的格式(在问题编辑之前它看起来完全不同)。所以我询问了细节(你也可以这样看),盲目地尝试不同的选择,直到找到合适的选择。
  • @MatheusGomes:好电话! :)

标签: python python-3.x list file external


【解决方案1】:

现在您只需对列表进行拆分和切片,就像这样:

#Get 4 elements, splitting for each line
print( '\n'.join(winList.split('\n')[:4]) )

【讨论】:

  • 谢谢它确实有效,但它输出 ['11 Tom', '15 Tom', '20 Ben', '20 Tom'] 有什么办法可以摆脱方括号,逗号和撇号?
  • @ThomasDraper 只需使用字符串“join”方法。我根据这个编辑了我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多