正在尝试使用python中的set从列表中删除重复用户。问题是它没有删除重复的用户:
with open ('live.txt') as file:
for line in file.readlines():
word = line.split()
users = (word[word.index('user')+1])
l = users.split()
l = set(l)
l = sorted(l)
print " ".join(l)
以下是live.txt
的内容:
Sep 15 04:34:24 li146-252 sshd[13320]: Failed password for invalid user ronda from 212.58.111.170 port 42201 ssh2
Sep 15 04:34:26 li146-252 sshd[13322]: Failed password for invalid user ronda from 212.58.111.170 port 42330 ssh2
Sep 15 04:34:28 li146-252 sshd[13324]: Failed password for invalid user ronda from 212.58.111.170 port 42454 ssh2
Sep 15 04:34:31 li146-252 sshd[13326]: Failed password for invalid user ronda from 212.58.111.170 port 42579 ssh2
Sep 15 04:34:33 li146-252 sshd[13328]: Failed password for invalid user romero from 212.58.111.170 port 42715 ssh2
Sep 15 04:34:36 li146-252 sshd[13330]: Failed password for invalid user romero from 212.58.111.170 port 42838 ssh2
如果重复的用户行是连续的;可以使用^{} 删除重复的:
你可以尝试一种更简单的方法
这将返回没有重复的列表。Python具有数据类型
set
,它是唯一元素的集合。因此,只要将list
类型转换为set
,就会自动删除重复项示例:
我希望这能解决你的问题:
以下是您需要的代码:
输出:
相关问题 更多 >
编程相关推荐