2017-06-08 62 views
-2

名單我有一個Python列表,如:提取子成在Python

['[email protected]', '[email protected]'...] 

我想只提取後@串到另一個列表直接,如:

mylist = ['gmail.com', 'hotmail.com'...] 

這可能嗎? split()似乎不適用於列表。

這是我的嘗試:

for x in range(len(mylist)): 
    mylist[x].split("@",1)[1] 

但它並沒有給我輸出的列表。

+0

你嘗試過什麼? –

+1

當然可以。你有沒有嘗試過自己呢?例如,您是否在查看如何分割單個值? –

+0

我試過split()。在每個元素的索引for循環中,但它沒有給我一個我想要的清單,只有一個字符串。 – Madno

回答

3

你靠近,嘗試這些小的調整:

列表是iterables,這意味着比你想象的更容易使用的for循環:現在

for x in mylist: 
    #do something 

,你想要做的事是1)在'@'分裂x和2)的結果添加到另一個列表。

#In order to add to another list you need to make another list 
newlist = [] 
for x in mylist: 
    split_results = x.split('@') 
    # Now you have a tuple of the results of your split 
    # add the second item to the new list 
    newlist.append(split_results[1]) 

一旦你明白,好了,你可以得到看中,並使用列表理解:

newlist = [x.split('@')[1] for x in mylist] 
0

這是我的嵌套解決方案的for循環:

myl = ['[email protected]', '[email protected]'...] 
results = [] 
for element in myl: 
    for x in element: 
     if x == '@': 
      x = element.index('@') 
      results.append(element[x+1:])