Вы можете просто rstrip () оскорбительного '-'
, прежде чем добавить свой SN в список серийных номеров:
# create SN like above, change l.append(x) to:
l.append(x.rstrip('-')) # removes the -from the right end before appending
Если вам нужно произвести партии ибыстро, вы должны нарисовать все необходимые символы сразу вместо по одному символу за раз и просто расположить разделители между группами следующим образом:
import random
import string
def createSN(groups = 4, charPerGroup = 5, spacer = '-'):
"""Create a serial number with 'groups' groups consisting
of 'charPerGroup' chars with 'spacer' between groups."""
total = groups * charPerGroup
# creates all characters with one call to random
chars = random.choices(string.ascii_letters, k = total)
# uses list slicing and string joining to divide created characters
# in groups and puts the spacer character between groups
return spacer.join( ''.join(chars[i:i+charPerGroup]) for i in range(0,total,amount))
# create a list of 3 SN:
l = [createSN() for _ in range(3)]
print(l)
Выходные данные:
['ONHVQ-PvIvo-ZVdRU-HYCZz', 'BWQnt-nRCGG-raoVt-XEWif', 'mMPDd-KakQR-BDkRG-MdqBX']
Это похоже и (но я думаю) превосходит решение @CoryKramer, он по-прежнему рисует каждый символ по отдельности - и использование функции делает его немного более понятным, что происходит.