【发布时间】:2020-11-05 19:00:54
【问题描述】:
目的是创建唯一的设备名称。如果已存在具有相似名称的设备,则每次出现时附加一个递增 1 的整数。
这是我的方法:
def deviceNamesSystem(devicenames):
if not devicenames:
return None
unique_device_names = []
devices = Counter(devicenames) #Group devices by names
for device_name,occurence in devices.items():
for item_integer in range(occurence):
#Append integer if device name already in list of unique devices
if item_integer == 0:
unique_device_names.append(device_name)
else:
unique_device_names.append(f"{device_name}{item_integer}")
return unique_device_names
输入:['lamp', 'lamp', 'tv', 'lamp']
预期输出:['lamp', 'lamp1', 'tv', 'lamp2']
我的输出:['lamp', 'lamp1', 'lamp2', 'tv']
【问题讨论】:
-
您丢失序列的原因是因为 Counter 不维护它 - 因此迭代
devicenames以维护序列并更新devices和unqiue_device_names。
标签: python