如何查看列表并改变列表中现有的元素?

2024-04-26 12:03:35 发布

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

我是Python新手,我正在尝试编写一段完成任务的代码:

  • 我需要打开文件romeo.txt并逐行阅读。
  • 对于每一行,使用split()函数将该行拆分为一个单词列表。**建立一个单词列表,如下所示:
    • 每行中的每个单词都要检查该单词是否已经在列表中
    • 如果不把它附加到列表中。
  • 程序完成后,按字母顺序对生成的单词进行排序和打印。

您可以在http://www.pythonlearn.com/code/romeo.txt下载示例数据

这就是我目前所拥有的:

fname = raw_input("Enter file name: ")
if len(fname) == 0:
    fname = open('romeo.txt')
newList = []
for line in fname:
    words = line.rstrip().split()

    print words

我知道我需要使用另一个for循环来检查是否有任何丢失的单词,最后需要使用sort()函数对它们进行排序。Python解释器给了我一个错误,告诉我必须使用append()来添加丢失的单词(如果它们不存在的话)。

我已经用我的代码构建了以下列表:

['But', 'soft', 'what', 'light', 'through', 'yonder', 'window', 'breaks'] ←      Mismatch
['It', 'is', 'the', 'east', 'and', 'Juliet', 'is', 'the', 'sun']
['Arise', 'fair', 'sun', 'and', 'kill', 'the', 'envious', 'moon']
['Who', 'is', 'already', 'sick', 'and', 'pale', 'with', 'grief']

但是输出应该是这样的:

['Arise', 'But', 'It', 'Juliet', 'Who', 'already', 'and', 'breaks','east', 'envious', 'fair', 'grief', 'is', 'kill', 'light', 'moon', 'pale', 'sick','soft', 'sun', 'the', 'through', 'what', 'window', 'with', 'yonder']

如何调整代码以生成输出?

重要提示: 对于每个想帮忙的人,请确保你能从我的代码中完成这个测试,因为这是一个任务,我们必须遵循课程的水平。谢谢

这是我对代码的更新:

fname = raw_input("Enter file name: ")
if len(fname) == 0:
    fname = open('romeo.txt')
newList = list()
for line in fname:
    words = line.rstrip().split()
    for i in words:
        newList.append(i) 
        newList.sort()



print newList

['起来','但是','它','朱丽叶','谁','已经','和','和','休息','东方','嫉妒','公平','悲伤','是','是','是','杀死','光明','月亮','苍白','生病','柔软','太阳','太阳','透过','什么','窗户','与','那边']
但我有重复!这是为什么,如何避免?


Tags: andthe代码intxt列表foris