首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将列表从文本文件转换为python列表

将列表从文本文件转换为python列表
EN

Stack Overflow用户
提问于 2015-02-28 12:04:12
回答 3查看 1.7K关注 0票数 1

我在教一堂课,我希望他们从文本文件中读取10个单词的列表,然后在3×3网格中随机显示其中的9个单词。

我的想法如下:

1)使用readlist = open('N:\Words.txt','r')读取文本文件

2) Python将其转换为一个列表,Python使用导入随机选择9。

3) Python在3x3网格中对列表进行双工处理

我尝试过各种各样的东西--读行,读行,加字符--但是没有成功,也没有成功。我错过了一些显而易见的东西,但看不见。

这会将第一个单词添加到列表中,但如何添加第二个单词:

代码语言:javascript
运行
复制
readlist = open('N:\Words.txt', 'r')
listwords=[]
firstword=readlist.read(5)
listwords.append(firstword)
print (listwords)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-02-28 12:12:43

使用random.sample获取9个随机单词,并将返回的列表拆分为三个子列表:

代码语言:javascript
运行
复制
from random import sample
from pprint import pprint as pp

with open("text.txt") as f:
    samp = sample(f.read().split(), 9)
    pp([samp[i:i+3] for i in range(0, len(samp), 3)],width=40)

 [['seven', 'ten', 'four'],
 ['one', 'five', 'nine'],
 ['eight', 'two', 'six']]

text.txt:

代码语言:javascript
运行
复制
one
two
three
four
five
six
seven
eight
nine
ten

如果您每行有一个单词,或者单行的单词用空格分隔,这将是可行的。

票数 2
EN

Stack Overflow用户

发布于 2015-02-28 12:10:00

open创建一个文件对象。

试试这个:

代码语言:javascript
运行
复制
with open(filename) as f:
    words = f.read().splitlines()

这是假设文件每一行有一个单词。f.read()以字符串的形式返回整个文件。string方法splitlines()将字符串拆分到换行符上,返回一个字符串数组,并去掉换行符。

我在这里使用一个with open(filename) as f:块,以便在您从它读取文件后立即关闭它(一旦该块完成)。块完成后,words仍在作用域中。这种样式读起来很好,避免了手动关闭文件的需要。

票数 0
EN

Stack Overflow用户

发布于 2015-02-28 12:14:59

代码语言:javascript
运行
复制
from random import shuffle

words = open('words.txt').read().splitlines()
shuffle(words)

chunks=[words[x:x+3] for x in xrange(0, 9, 3)]
for chunk in chunks:
    print chunk

['d', 'f', 'a']
['i', 'j', 'g']
['e', 'h', 'b']

words.txt在一个单独的行中包含从a到j的所有字母。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28781476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档