Python: List to English String
Well, I am working on extending a Django application to add log entries to the django.contrib.admin.models.LogEntry
which may be fodder for another post, but while composing a change_message
I wanted to convert a list of “changes” into a string like “Changed this thing, that thing, and that other thing.”
Here is what I have got, and since it is Python I bet $1 that someone will comment with a better way. (I couldn’t figure a good search query for seeking the answer so I had to use my brain.)
if len(updated_list) > 1: rs = "Changed " + ", ".join(map(str, updated_list[:-1])) + " and " + updated_list[-1] + "." else: rs = "Changed " + updated_list[0] + "." >>> updated_list = ['just one thing'] >>> print "Changed " + updated_list[0] + "." Changed just one thing. >>> updated_list = ['one thing', 'another thing'] >>> print "Changed " + ", ".join(map(str, updated_list[:-1])) + " and " + updated_list[-1] + "." Changed one thing and another thing. >>> updated_list = ['this thing', 'that thing', 'that other thing'] >>> print "Changed " + ", ".join(map(str, updated_list[:-1])) + " and " + updated_list[-1] + "." Changed this thing, that thing and that other thing.