python - 如何将文件拆分为两个单独的数组?
问题描述
我需要将文件拆分为 2 个单独的数组。我的意思是将username:password
文件拆分为用户名和密码数组,然后能够通过相同的索引号调用它们,以使用户名和密码匹配。到目前为止,我有:
with open('userlist.txt', 'r') as userlist:
for line in userlist:
user, pwd = line.strip().split(':')
我不想将代码拆分为 2 个不同的变量,而是将它们拆分为 2 个不同的数组。这样我可以通过相同的索引号调用它们来获取 user:pass 组合。
谢谢。
解决方案
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
推荐阅读
- azure - 我可以在我保留的 VM 上托管 Azure 应用服务吗?
- swift - SwiftUI 配置 LazyVGrid 无间距
- android - 为什么我新安装的 Genymotion 虚拟设备打不开?
- node.js - Oracle with Sworm node.js ORM TypeError: value.save is not a function
- angular - Angular获取所有控制台错误
- kotlin - 协程崩溃
- python - Jinja2 循环范围 - 1 个循环中有 2 个变量
- pytorch - 在 Pytorch 中找到每个班级的平均值
- spring - 尝试运行 Spring MVC 单元测试时出错
- c++ - 如何用正则表达式匹配复杂的字符串