Python 如何将文件拆分为两个单独的数组?

Python 如何将文件拆分为两个单独的数组?,python,Python,我需要将一个文件拆分为两个单独的数组。我的意思是将一个username:password文件拆分为一个username和一个password数组,然后能够通过相同的索引号调用它们,以使用户名和密码匹配。到目前为止,我已经: with open('userlist.txt', 'r') as userlist: for line in userlist: user, pwd = line.strip().split(':') 我不想把代码分成两个不同的变量,而是想把它们分

我需要将一个文件拆分为两个单独的数组。我的意思是将一个
username:password
文件拆分为一个username和一个password数组,然后能够通过相同的索引号调用它们,以使用户名和密码匹配。到目前为止,我已经:

with open('userlist.txt', 'r') as userlist:
    for line in userlist:
        user, pwd = line.strip().split(':')
我不想把代码分成两个不同的变量,而是想把它们分成两个不同的数组。通过这种方式,我可以通过相同的索引号调用它们,以获得user:pass组合

谢谢。

你可以试试这个:

username = list()
password = list()
with open('userlist.txt', 'r') as userlist:
    for line in userlist:
        user, pwd = line.strip().split(':')
        username.append(user)
        password.append(pwd)

total_length = len(username)
for i in range(total_length):
    print(username[i], password[i])
您可以阅读此内容了解数据结构。

您可以尝试以下方法:

username = list()
password = list()
with open('userlist.txt', 'r') as userlist:
    for line in userlist:
        user, pwd = line.strip().split(':')
        username.append(user)
        password.append(pwd)

total_length = len(username)
for i in range(total_length):
    print(username[i], password[i])

您可以阅读本文了解数据结构。

塔希杜尔伊斯兰已经发布了一个技术上完美的解决方案,但是

将username:password文件拆分为username数组和password数组,然后能够通过相同的索引号调用它们,以使用户名和密码匹配

这不是正确的设计。使用此解决方案,您依赖于列表保持相同的长度和顺序,这是无法保证的,因此它充其量是脆弱的(注意:您可以打赌……它会破裂)

此外,要查找用户及其密码,您需要先进行顺序查找(在“用户名”列表上),然后在第二个列表上进行索引访问,这远远不是最优的

“匹配”键(这里是用户名)和值(这里是密码)的正确数据结构是
dict
:一个无序的键:值对集合,具有优化的键查找(0(1)而不是列表中的0(N)),因此您真正想要的是:

users = {}
with open('userlist.txt', 'r') as userlist:
    for line in userlist:
        user, pwd = line.strip().split(':')
        users[user] = pwd

塔希杜尔伊斯兰已经发布了一个技术上完美的解决方案,但是

将username:password文件拆分为username数组和password数组,然后能够通过相同的索引号调用它们,以使用户名和密码匹配

这不是正确的设计。使用此解决方案,您依赖于列表保持相同的长度和顺序,这是无法保证的,因此它充其量是脆弱的(注意:您可以打赌……它会破裂)

此外,要查找用户及其密码,您需要先进行顺序查找(在“用户名”列表上),然后在第二个列表上进行索引访问,这远远不是最优的

“匹配”键(这里是用户名)和值(这里是密码)的正确数据结构是
dict
:一个无序的键:值对集合,具有优化的键查找(0(1)而不是列表中的0(N)),因此您真正想要的是:

users = {}
with open('userlist.txt', 'r') as userlist:
    for line in userlist:
        user, pwd = line.strip().split(':')
        users[user] = pwd

我建议用措辞来代替清单:

然后你可以做:

with open("userlist.txt", "r") as f:
    # create a nice dict with name to password mapping
    name_password_mapping = dict(
        line.strip().split(":")
        for line in f.readlines()
    )
# Access the user password with
user_pass = name_password_mapping["user"]
# do stuff with user and password

# if you want to have the user and the password together as a tuple, 
# you can still do:
list_of_user_password_pairings = name_password_mapping.items()
print(list_of_user_password_pairings[0]) #  prints ("user0", "pw_user0")

我建议用措辞来代替清单:

然后你可以做:

with open("userlist.txt", "r") as f:
    # create a nice dict with name to password mapping
    name_password_mapping = dict(
        line.strip().split(":")
        for line in f.readlines()
    )
# Access the user password with
user_pass = name_password_mapping["user"]
# do stuff with user and password

# if you want to have the user and the password together as a tuple, 
# you can still do:
list_of_user_password_pairings = name_password_mapping.items()
print(list_of_user_password_pairings[0]) #  prints ("user0", "pw_user0")

字典不是一个更合适的容器吗?它是如何工作的?我是python新手。:)请问,字典不是更合适的容器吗?它是如何工作的?我是python新手。:)请帮忙好的,非常感谢!如何打印列表/数组中的某个索引?我是python的新手:)好的,非常感谢!如何打印列表/数组中的某个索引?我是python的新手:)好的。那会有帮助的!谢谢@Bluecider你也应该看看教程,例如,因为你将要使用字典,所以我现在还不知道。现在我坚持这个设计,但我仍然不知道如何打印某个索引。例如,print(users[1])不起作用,我希望出现“username1”、“password1”@Bluecider”的结果。我将您链接到教程,该教程演示了如何通过键访问值。“在字典中访问值”是第一部分。@Bluecider SO既不是教程,也不是官方文档的替代品。这里介绍了dicts,这里有完整的文档,所以请从这些资源开始(注意第三部分教程,有些很好,但有相当多是完全废话)。无论如何,你必须学会使用主要的内置类型,特别是dicts,因为它们是相当重要的功能的基础-对象、模块、名称空间等。是的,请。那会有帮助的!谢谢@Bluecider你也应该看看教程,例如,因为你将要使用字典,所以我现在还不知道。现在我坚持这个设计,但我仍然不知道如何打印某个索引。例如,print(users[1])不起作用,我希望出现“username1”、“password1”@Bluecider”的结果。我将您链接到教程,该教程演示了如何通过键访问值。“在字典中访问值”是第一部分。@Bluecider SO既不是教程,也不是官方文档的替代品。这里介绍了dicts,这里有完整的文档,所以请从这些资源开始(注意第三部分教程,有些很好,但有相当多是完全废话)。无论如何,您必须学会使用主要的内置类型,特别是dict,因为它们是相当重要的特性(对象、模块、名称空间等)的基础。