首页 > 解决方案 > 如何将文件拆分为两个单独的数组?

问题描述

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

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

我不想将代码拆分为 2 个不同的变量,而是将它们拆分为 2 个不同的数组。这样我可以通过相同的索引号调用它们来获取 user:pass 组合。

谢谢。

标签: python

解决方案


Taohidul Islam 已经发布了一个技术上完美的解决方案,但是

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

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

此外,要查找用户和她的密码,您需要第一次顺序查找(在“用户名”列表上),然后在第二个列表上进行索引访问,这远非最佳。

将键(此处为用户名)与值(此处为密码)“匹配”的正确数据结构是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

推荐阅读