Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 按递增和枚举对文本列进行排序_Python_List_Loops_Text - Fatal编程技术网

Python 按递增和枚举对文本列进行排序

Python 按递增和枚举对文本列进行排序,python,list,loops,text,Python,List,Loops,Text,使用python和StackOverflow还是有点新。我试着用一个包含单词列表的文本文件对其进行迭代,并按每个单词的第1、第2和第3个单词将其排序为3个不同的列表。我的问题是我不能让它运行不止一次。我想我的导师可能不正确 shakey2 = open('/path/to/file/shakey2.txt', 'r') col1 = [] col2 = [] col3 = [] inc = 0 ent1, ent2, ent3 = range(3) #0, 1, 2 for en, line

使用python和StackOverflow还是有点新。我试着用一个包含单词列表的文本文件对其进行迭代,并按每个单词的第1、第2和第3个单词将其排序为3个不同的列表。我的问题是我不能让它运行不止一次。我想我的导师可能不正确

shakey2 = open('/path/to/file/shakey2.txt', 'r')

col1 = []
col2 = []
col3 = [] 
inc = 0
ent1, ent2, ent3 = range(3) #0, 1, 2
for en, line in enumerate(shakey2):
    l = line.strip()
    if ent1 + inc == en:
        col1.append(l)
    elif ent2 + inc == en:
        col2.append(l)
    elif ent3 + inc == en:
        col3.append(l)

    inc += 3
    continue    

shakey2.close()
print(col1, col2, col3)
下面是我正在使用的文本文件的一个片段:

artless
base-court
apple-john
bawdy
bat-fowling
baggage
beslubbering
beef-witted
barnacle
bootless
beetle-headed
bladder
churlish
boil-brained
boar-pig
cockered
clapper-clawed
bugbear
输出:

(['artless'], ['base-court'], ['apple-john'])
期望输出:

(['artless', 'bawdy', 'beslubbering'], ['base-court', 'bat-fowling', 'beef-witted'], ['apple-john', 'baggage', 'barnacle'])

使用mod,您可以轻松完成:

shakey2 = open('/path/to/file/shakey2.txt', 'r')

cols = [[] for _ in range(3)]
for en, line in enumerate(shakey2):
    cols[en % 3].append(line.strip())

shakey2.close()
print(cols)
如果您想将此列表解压缩到初始的三个变量中:

col1, col2, col3 = cols

显示所需的输出你需要取mod,否则这些东西的总和将停止在0和3之间。你甚至不需要求和,我不认为。不管怎样,在
continue
谢谢后,您永远无法到达电话线。成功了。我正在学习如何使用枚举。列表实现列表也不是我考虑过的东西,你应该解释一下,让他明白它在做什么,让其他对python不熟悉的人也明白