如何将2个元素放入2个单独的列表中?

时间:2019-02-05 15:00:47

标签: python

我目前正在遍历列表,并在':'处拆分2个元素。然后,它产生2个元素:用户和密码。然后,我想列出2个列表,一个用于用户,一个用于密码。现在,它们都存储在称为行的列表中。我想将它们存储在2个列表中,即用户名和密码。我之所以要这样做,是因为我希望以后可以分别拉动它们中的每一个,以使用他们的密码向用户发送电子邮件。

我尝试将这2个元素追加到2个单独的列表中,但一直出现错误。我需要使用字典吗?

lines = []
#open txt file
with open("output.txt", "r") as f:
    for line in f.readlines():
        #only return lines that contain 'Success'
        if 'Success' in line:
            lines.append(line[:line.find('Success')-1])
for element in lines:
    user, password = element.strip().split(":")
    print(user,password)

当前输出列出每个用户及其密码。但是我希望以后能够拉动每个用户并向他们发送电子邮件并告诉他们他们的密码是什么。尽管下一步是将其用户名和密码放入2个单独的列表中。想法?

2 个答案:

答案 0 :(得分:1)

您已经关闭。有两个单独的列表,您的代码如下所示:

#open txt file
listuser = []
listpwd = []
with open("output.txt", "r") as f:
    for line in f.readlines():
        #only return lines that contain 'Success'
        if 'Success' in line:
            ll = line[:line.find('Success')-1]
            user, password = ll.strip().split(":")
            print(user, password)
            listuser.append(user)
            listpwd.append(password)

类似,但有字典。确保没有用户使用相同的用户名,字典键必须唯一。

#open txt file
userpwd = {}
with open("output.txt", "r") as f:
    for line in f.readlines():
        #only return lines that contain 'Success'
        if 'Success' in line:
            ll = line[:line.find('Success')-1]
            print(user, password)
            user, password = ll.strip().split(":")
            userpwd[user] = password

答案 1 :(得分:0)

我认为创建字典是一个好主意,除非您有两个用户使用相同的用户名。在这种情况下,这将不起作用。 这是示例代码-

userPass = {}
for element in lines:
   user,password = element.strip().split(':')
   userPass[user] = password

对于具有相同用户名的两个用户,它将用先前存储的用户替换当前用户。