我有一个类似的Python列表:
['user@gmail.com', 'someone@hotmail.com'...]
Run Code Online (Sandbox Code Playgroud)
我只想将@之后的字符串直接提取到另一个列表中,例如:
mylist = ['gmail.com', 'hotmail.com'...]
Run Code Online (Sandbox Code Playgroud)
可能吗?split()似乎不适用于列表。
这是我的尝试:
for x in range(len(mylist)):
mylist[x].split("@",1)[1]
Run Code Online (Sandbox Code Playgroud)
但这没有给我输出清单。
您已接近,请尝试以下小调整:
列表是可迭代的,这意味着它比您认为的更容易使用for循环:
for x in mylist:
#do something
Run Code Online (Sandbox Code Playgroud)
现在,您要做的事情是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])
Run Code Online (Sandbox Code Playgroud)
一旦了解了这一点,就可以开始幻想并使用列表理解了:
newlist = [x.split('@')[1] for x in mylist]
Run Code Online (Sandbox Code Playgroud)