I wouldn't be surprised if the title question is confusing, so I'll try to elaborate by way of example.
Consider the list
person = {firstName, lastName, dateOfBirth, occupation, ..., country} where each element of person is a String. I have a larger list, people, consisting of all lists person containing varying amounts of information. All person lists include first and last names and country, but not all have the DOB or occupation. I don't particularly care about these latter two entries. Other person lists have even more information between occupation and country (denoted by ...) that I would like to ignore.
I want to generate a list of pairs consisting of the StringRiffled first and last names, and the country, so that each person list is transformed to
{fullName, country} Getting the names set up is easy using Slots, but I can't think of a good way to get the country in a consistent way. I had thought to try
{StringRiffle[{#1, #2}], #(-1)} & @@ # & /@ people (* but the second entry is -1 times the first name ... *) and
{StringRiffle[{#1, #2}], Slot[-1]} & @@ # & /@ people (* but the argument to Slot must be non-negative ... *) Is there some way of using Slot to this end? I'm of course open to other simpler suggestions.