1

Given the following list of configurations

['configuration1A', 'configuration1B', 'configuration1C', 'configuration2A', 'configuration2B', 'configuration2C', 'configuration3A', 'configuration3B', 'configuration3C', 'configuration4A', 'configuration4B', 'configuration4C', 'configuration5A', 'configuration5B', 'configuration5C', 'configuration6A', 'configuration6B', 'configuration6C', 'configuration7A', 'configuration7B', 'configuration7C', 'configuration8A', 'configuration8B', 'configuration8C', 'configuration9A', 'configuration9B', 'configuration9C', 'configuration10A', 'configuration10B', 'configuration10C', 'configuration11A', 'configuration11B', 'configuration11C', 'configuration12A', 'configuration12B', 'configuration12C', 'configuration13A', 'configuration13B', 'configuration13C', 'configuration14A', 'configuration14B', 'configuration14C', 'configuration15A', 'configuration15B', 'configuration15C', 'configuration16A', 'configuration16B', 'configuration16C', 'configuration17A', 'configuration17B', 'configuration17C', 'configuration18A', 'configuration18B', 'configuration18C', 'configuration19A', 'configuration19B', 'configuration19C', 'configuration20A', 'configuration20B', 'configuration20C', 'configuration21A', 'configuration21B', 'configuration21C', 'configuration22A', 'configuration22B', 'configuration22C', 'configuration23A', 'configuration23B', 'configuration23C', 'configuration24A', 'configuration24B', 'configuration24C', 'configuration25A', 'configuration25B', 'configuration25C', 'configuration1A', 'configuration1B', 'configuration1C', 'configuration2A', 'configuration2B', 'configuration2C', 'configuration3A', 'configuration3B', 'configuration3C', 'configuration4A', 'configuration4B', 'configuration4C', 'configuration5A', 'configuration5B', 'configuration5C', 'configuration6A', 'configuration6B', 'configuration6C', 'configuration7A', 'configuration7B', 'configuration7C', 'configuration8A', 'configuration8B', 'configuration8C', 'configuration9A', 'configuration9B', 'configuration9C', 'configuration10A', 'configuration10B', 'configuration10C', 'configuration11A', 'configuration11B', 'configuration11C', 'configuration12A', 'configuration12B', 'configuration12C', 'configuration13A', 'configuration13B', 'configuration13C', 'configuration14A', 'configuration14B', 'configuration14C', 'configuration15A', 'configuration15B', 'configuration15C', 'configuration16A', 'configuration16B', 'configuration16C', 'configuration17A', 'configuration17B', 'configuration17C', 'configuration18A', 'configuration18B', 'configuration18C', 'configuration19A', 'configuration19B', 'configuration19C', 'configuration20A', 'configuration20B', 'configuration20C', 'configuration21A', 'configuration21B', 'configuration21C', 'configuration22A', 'configuration22B', 'configuration22C', 'configuration23A', 'configuration23B', 'configuration23C', 'configuration24A', 'configuration24B', 'configuration24C', 'configuration25A', 'configuration25B', 'configuration25C', 'configuration1A', 'configuration1B', 'configuration1C', 'configuration2A', 'configuration2B', 'configuration2C', 'configuration3A', 'configuration3B', 'configuration3C', 'configuration4A', 'configuration4B', 'configuration4C', 'configuration5A', 'configuration5B', 'configuration5C', 'configuration6A', 'configuration6B', 'configuration6C', 'configuration7A', 'configuration7B', 'configuration7C', 'configuration8A', 'configuration8B', 'configuration8C', 'configuration9A', 'configuration9B', 'configuration9C', 'configuration10A', 'configuration10B', 'configuration10C', 'configuration11A', 'configuration11B', 'configuration11C', 'configuration12A', 'configuration12B', 'configuration12C', 'configuration13A', 'configuration13B', 'configuration13C', 'configuration14A', 'configuration14B', 'configuration14C', 'configuration15A', 'configuration15B', 'configuration15C', 'configuration16A', 'configuration16B', 'configuration16C', 'configuration17A', 'configuration17B', 'configuration17C', 'configuration18A', 'configuration18B', 'configuration18C', 'configuration19A', 'configuration19B', 'configuration19C', 'configuration20A', 'configuration20B', 'configuration20C', 'configuration21A', 'configuration21B', 'configuration21C', 'configuration22A', 'configuration22B', 'configuration22C', 'configuration23A', 'configuration23B', 'configuration23C', 'configuration24A', 'configuration24B', 'configuration24C', 'configuration25A', 'configuration25B', 'configuration25C']

How does one append a string at the end of each element (string) with specific constraints:

• Add string="1" to the first 75 elements (configuration1A1, and so on)

• Add string="2" to the next 75 elements (configuration1A2, and so on)

• Add string="3" to the last 75 elements (configuration1A3, and so on)

In order to add the string at the end of a string, one can do the following

config_numb="1"
configurations_new = [x + config_numb for i in configurations_v1]

So far, I have the following

count = 0

for x in configurations_v1:
    
    if count < 75:
        #print(x)
        config_numb="1"
        configurations_new = [x + config_numb for i in configurations_v1]
        
        pass
    elif count >= 75 and count < 150:
        #print(x)
        config_numb="2"
        configurations_new = [x + config_numb for i in configurations_v1]
        pass
    
    elif count >= 150:
        #print(x)
        config_numb="3"
        configurations_new = [x + config_numb for i in configurations_v1]
        pass
    
    count += 1

But this is creating a list with the len() required, however, instead of having all the elements in the configuration list with their respective config_numb at the end, every element is configuration25C3.

['configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3', 'configuration25C3']

I am aware of this question, but that one only considers the appending of the same string, which is not the problem here.

Gonçalo Peres
  • 11,752
  • 3
  • 54
  • 83

1 Answers1

2

The problem here is list comprehension iterates over an entire iterable and creates a new list, you can add conditions to the value but just iterating might in fact be easier to understand for people, also one more thing to note is strings are immutable i.e. when you are saying modify you are in fact creating a new string. Try this:

configurations_new = configurations_v1.copy()
for index, value in enumerate(configurations_v1):
    if index < 75:
        configurations_new[index] = configurations_new[index] + '1'
    elif index < 150:
        configurations_new[index] = configurations_new[index] + '2'
    else:
        configurations_new[index] = configurations_new[index] + '3'

Which when written using list comprehension is:

configurations_new = [i + '1' if index < 75 else i + '2' if index < 150 else i + '3' for index, i in enumerate(configurations_v1)]
Abdul Aziz Barkat
  • 19,475
  • 3
  • 20
  • 33