我目前正在学习python,在做老师提供的练习时遇到了一些问题。所以我有一个txt文件包含一个如下所示的名字列表
Noah
Liam
Madison
Jayden
Elizabeth
Jacob
Mia
Noah
Angelia
Bob
Cindy
我应该从列表中删除重复项,例如列表中有2个“Noah”,我应该删除其中一个并返回一个按字母顺序排序的列表,例如
^{pr2}$。。。。在
我在网上搜索过,知道我们应用set的方法。 但是我的老师在评论中说
for n in open('class_list.txt'):
# TODO: do something with n.strip() "
我不明白为什么在这里使用strip函数?如果我写n.strip('Noah'),strip函数不只是简单地从列表中删除2个相同的字符串吗?还是我错误地解释和使用了脱衣舞?在
我怀疑你的老师是不是想用strip()消除重复,而是去掉名字后面的空格。 既然这看起来像是一个家庭作业问题,我不会给你答案,但我会尽力为你指出正确的方向。在
您可能应该知道如何使用}读取数据。所以,有了一个名字列表,我们就可以消除重复。但是,这个词可能在每个词的末尾包含一些讨厌的字符(
file = open("file")
或{\n
尤其是对于换行符)。为了避开这个问题,调用word.strip()
,它会破坏结尾不必要的字符和空白。所以,当你找到一个单词列表时,执行如下操作正如您所说的使用集合,但是,集合是无序的数据类型,因此当您将一个列表转换为一个集合(使用
set(list)
和list(set)
),然后将集合还原为列表,顺序将丢失。但是,它很容易被一个方便的python函数sorted(list)
恢复,该函数将为您按字母顺序对名称进行排序。在然后打印列表就变得很简单了,它的效果是
^{pr2}$如果你不熟悉的话, 例如(这不是很有效):
seen
)迭代你的名字列表,并为每个名字
seen
中,list.pop(name)
则从你的名字列表中选择它。在seen.append
将其添加到seen
向
set
添加名称并对其排序。在in
比较使用
str.strip
是为了在从文件中读入行时消除尾随的换行。在是的,你把
str.strip()
解释错了。它的作用是删除行首和行尾的所有空白。你想做的就是这样它的作用是打开一个带有名称的文件。然后迭代每一行,每行都是一个名称。检查是否已经看到该名称,如果没有,则将其添加到
names
。最后,将唯一的名字排序并打印出来。在相关问题 更多 >
编程相关推荐