如何拆分成二维数组python

时间:2018-10-09 13:02:38

标签: python arrays

我想将文件中的行拆分为2个单独的(二维)数组。

例如用户名:密码数组(users[user][pass]

这是我到目前为止提出的代码:

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

请帮助。该代码当前仅列出所有用户名和所有密码。但是我希望能够通过相同的索引(例如print(users[1][1]))来调用带有密码对的用户名

3 个答案:

答案 0 :(得分:1)

以下内容就足够了。请注意,您必须在循环之前 初始化外部数据结构并将其填充到循环中:

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

可以缩写为:

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

答案 1 :(得分:1)

我建议您这样做

file=open('userlist.txt', 'r')
line=file.readlines()
users=[l.strip.split(':') for l in line]

这是用一行“ uname”:“ pass”,用“:”将其分割,这会给您["uname","pass"],并将其保存在用户数组的每个索引中

您现在可以通过[users[i][0]]访问用户名,并通过users[i][1]访问密码

答案 2 :(得分:0)

正如您在问题中所描述的,您希望在每次循环用户列表时向所有用户的现有列表中添加新列表[用户,密码]。

您可以这样做:

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

但是对于这种情况,使用字典有更好的解决方案:

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