2015-10-28 77 views
0

我试图分开是由一系列的两个字符串的列表:Python列表分离

  • 密码哈希
  • 用户名

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

我想为哈希值和用户名列表做一个列表。

我试图

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

,企图得到的散列值的列表,但我刚开列表由一个项目,该项目是整个原始列表。

什么是最好的方式来获得两个不同的列表在Python中的两个单独的部分?

回答

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 
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]