Python列表分离

时间:2015-10-28 03:10:50

标签: python list

我正在尝试分隔由一系列两个字符串组成的列表:

  • 密码哈希
  • 用户名

(例如['9434e user1', '8434f user2']等)。

我正在尝试列出哈希值列表和用户名列表。

我试过

for x in range(len(list)): 
    newList.append(list[:5])

试图获取哈希值的列表,但我只是得到一个由一个项组成的列表,该项是整个原始列表。

在python的两个不同列表中获取两个独立部分的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

>>> hsh, names = zip(*(x.split() for x in ['9434e user1', '8434f user2']))
>>> hsh
('9434e', '8434f')
>>> names
('user1', 'user2')

说明:此部分只是将项目拆分

>>> [x.split() for x in ['9434e user1', '8434f user2']]
[['9434e', 'user1'], ['8434f', 'user2']]

现在有一个很好的习惯用法来转置这个列表列表

zip(*foo) # transposes foo

答案 1 :(得分:0)

以下是两个选项:

strings = ['9434e user1', '8434f user2']
hashes = []
users = []
for string in strings:
    this_hash = string.split()[0]
    this_user = string.split()[1]
    hashes.append(this_hash)
    users.append(this_user)

hashes2 = [string.split()[0] for string in strings]
users2 = [string.split()[1] for string in strings]