2015-10-28 80 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]