Python使用append-remove-duplicate-words从文件创建排序列表

2024-04-26 01:03:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在学习python课程,6小时后我就迷失了方向。作业指导学生创建一个程序,用户在其中输入一个文件名,python打开该文件并构建一个没有重复项的排序单词列表。方向非常明确,必须使用For循环和append。”对于每行中的每个单词,请检查该单词是否已在列表中,如果没有,请将其附加到列表中。“

fname = raw_input("Enter file name: ")
fh = open(fname)
lst = list()
for line in fh:
    line = line.strip()
    words = line.split()
for words in fh:
    if words in 1st:continue
        elif 1st.append
1st.sort()
print 1st 

Tags: in列表for作业line方向单词fname
2条回答

仅仅使用set()本身会更容易,但是根据赋值指令,这将是一个很好的实现。与只使用list的版本相比,它真的很快!你知道吗

from collections import Set

def get_exclusive_list(fname):
    words = []
    with open(fname.txt, 'r') as file_d:
        data = file_d.read()
    [words.extend(li.split(' ')) for li in data.splitlines()]
    data = []
    already_seen = set()
    for thing in words:
        if thing not in already_seen:
            data.append(thing)
            already_seen.add(thing)
return data


# The better implementation
def get_exclusive_list_improved(fname):
    words = []
    with open(fname.txt, 'r') as file_d:
        data = file_d.read()
    [words.extend(li.split(' ')) for li in data.splitlines()]
    return list(set(words))

不知道下面的循环应该做什么-

for words in fh:
    if words in 1st:continue
        elif 1st.append

上面没有做任何事情,因为在控件到达此部分之前,您已经用完了文件fh。你知道吗

您应该在for line in fh:中放入一个内部循环,它逐个遍历words列表中的单词,如果lst还没有,则将其追加到lst。你知道吗

另外,您应该执行lst.append(word)

另外,我认为您的if..elif块也不是有效的语法。你知道吗

你应该做一些类似的例子-

for line in fh:
    line = line.strip()
    words = line.split()
    for word in words:
        if word not in lst:
            lst.append(word)

相关问题 更多 >