3

I am currently working on a script which sends out the list of defaulters to a distro. I have the values in python list like this ['[email protected]','[email protected]','[email protected]'] I need to form a multiline string from the above array like this

""" 1. [email protected]
    2. [email protected]
    3. [email protected]"""

I tried this

defaultersList = ['[email protected]','[email protected]','[email protected]']  
multilineStr = ""

for item in defaultersList:
  multilineStr = multilineStr + '\n' + item

but out put doesnt come how I expected it to come. Its coming in single line with \n character

1 Answer 1

1

You are looking for:

"\n".join(["{0}. {1}".format(i+1, person) for i, person in enumerate(defaultersList)])

Of course, the "\n" token will be in the string, but if you call print, you'll see a multiline string.

"\n" is how a newline is represented in Python (and computers in general).

Sign up to request clarification or add additional context in comments.

3 Comments

I am not printing the string instead it will be email body like this msg = MIMEText("""this is the body of the email""") ... sure \n ill give a new line?
Alternative suggestion: "".join(starmap("{0}. {1}\n".format, enumerate(defaultersList, 1))) (with starmap() from itertools).
I am not printing the string instead it will be email body like this msg = MIMEText("""this is the body of the email""") ... sure \n ill give a new line?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.