我有一个Python列表:
['user@gmail.com', 'someone@hotmail.com'...]
我想只将@之后的字符串直接提取到另一个列表中,例如:
mylist = ['gmail.com', 'hotmail.com'...]
有可能吗? split()似乎没有使用列表。
这是我的尝试:
for x in range(len(mylist)):
mylist[x].split("@",1)[1]
但它没有给我一份输出清单。
答案 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:])