繁体   English   中英

列表中元素的索引

[英]Index of element from the list

我需要处理电子邮件列表,将其剪切并使用迭代计数器进行输出

MailList = [email1@gmail.com, email2@gmail.com, email3@gmail.com] # I have a list with emails
# I need to process them and get next output: "User%number% is email1" I'm using something like:
for c in MailList:
    print('user'+ ' is '+c[0:7]) # what I need to insert here to get desirable counter for my output?

您需要使用@拆分电子邮件:

>>> MailList = ['email1@gmail.com', 'email2@gmail.com', 'email3@gmail.com']
>>> for i in MailList :
...   print ('user'+ ' is {}'.format(i.split('@')[0]) )
... 
user is email1
user is email2
user is email3

如果我理解正确,那么您需要这样做:

MailList = ["email1@gmail.com", "email2@gmail.com", "email3@gmail.com"]

for index, value in enumerate(MailList):
    print('user {} is {}'.format(index, value.split("@")[0]))

有关enumerate详细信息,请参阅文档

使用itertools.takewhile

>>> import itertools
>>> MailList = ['email1@gmail.com', 'email2@gmail.com', 'email3@gmail.com']
>>> for x in MailList:
...     print("user is {}".format("".join(itertools.takewhile(lambda x:x!='@',x))))
... 
user is email1
user is email2
user is email3

使用index

>>> for x in MailList:
...     print("user is {}".format(x[:x.index('@')]))
... 
user is email1
user is email2
user is email3

使用find

>>> for x in MailList:
...     print("user is {}".format(x[:x.find('@')]))
... 
user is email1
user is email2
user is email3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM