从列表中将子字符串提取到Python中的列表中

时间:2017-06-08 22:17:27

标签: python

我有一个Python列表:

['user@gmail.com', 'someone@hotmail.com'...]

我想只将@之后的字符串直接提取到另一个列表中,例如:

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

有可能吗? split()似乎没有使用列表。

这是我的尝试:

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

但它没有给我一份输出清单。

2 个答案:

答案 0 :(得分:4)

你关闭了,试试这些小调整:

列表是可迭代的,这意味着它比你想象的更容易使用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]

答案 1 :(得分:0)

这是我使用嵌套for循环的解决方案:

myl = ['user@gmail.com', 'someone@hotmail.com'...]
results = []
for element in myl:
    for x in element:
        if x == '@':
            x =  element.index('@')
            results.append(element[x+1:])