重命名列表中的重复项可能是一个难以解决的问题,因为它需要您识别重复项,然后决定如何重命名它们。 如果列表包含许多元素或元素是复杂对象,这可能尤其具有挑战性。 此外,重命名重复项可能需要您修改依赖于元素原始名称的代码的其他部分,以便它们继续正常运行。
def rename_duplicates(lst): seen = set() new_lst = [] for item in lst: if item not in seen: seen.add(item) new_lst.append(item) else: new_item = item + '_1' # append a suffix to make it unique while new_item in seen: # increment the suffix until it's unique suffix = int(new_item.split('_')[-1]) + 1 # get the last number and add one to it new_item = '{}_{}'.format('_'.join(new_item.split('_')[:-1]), suffix) seen.add(new_item) # add the newly created item to the set of seen items new_lst.append(new_item) # append the newly created item to the list return new
_lst
# 这段代码定义了一个名为 rename_duplicates 的函数,它接受一个列表作为参数。
def rename_duplicates(lst):
# 然后它创建一个名为 seen 的空集和一个名为 new_lst 的空列表。
看到= set()
新_lst = []
# 然后它遍历列表中的项目并检查它们是否已经在可见项目集中。
对于 lst 中的项目:
if item not in seen: # 如果不是,则将其添加到可见项集合中并将其附加到新列表中。
seen.add(项目)
new_lst.append(item) # 如果是,它通过在其名称中添加后缀(例如,'_1')来创建该项目的唯一版本,并检查这个新创建的项目是否已经在可见项目集中。
else: # 如果是这样,它将增加后缀,直到找到该项目名称的未使用版本,并将这个新创建的项目添加到可见项目集和新列表中,然后在执行结束时返回这个新列表。
new_item = 项目 + '_1'
while new_item in seen: # 递增后缀直到唯一
suffix = int(new_item.split('_')[-1]) + 1 # 获取最后一个数字并加一
new_item = '{}_{}'.format('_'.join(new_item.split('_')[:-1]), 后缀)
看到。添加(新
Python 中的列表
Python 中的列表是最常用的数据结构之一。 它们用于存储项目的集合,可以是任何类型,包括其他列表。 列表是可变的,这意味着它们可以在创建后更改。 它们还支持索引、切片和连接等操作。
要在 Python 中创建列表,您可以使用方括号并用逗号分隔每个项目:
我的列表 = [1, 2, 3]
您可以使用索引访问列表中的各个元素:
my_list[0] # 返回 1
my_list[1] # 返回 2
my_list[2] # 返回 3
您还可以使用负索引从列表末尾访问元素:
my_list[-1] # 返回 3(最后一个元素)
您可以使用 append() 方法将项目添加到列表中:
my_list.append(4) # 将 4 添加到列表的末尾
您可以使用 remove() 或 pop() 方法从列表中删除项目:
my_list.remove(3) # 从列表中删除 3
my_list.pop(2) # 从列表中移除并返回 2(第三个元素)
在 Python 中重命名列表中的重复项
在 Python 中重命名列表中的重复项是处理列表时的常见任务。 它涉及用唯一值替换列表中的重复元素。 这可以使用 set() 函数来完成,该函数从列表中删除所有重复元素并返回一个仅包含唯一元素的新列表。 set() 函数也可用于重命名重复项,方法是为其提供旧值到新值的映射。 例如,如果您有一个数字列表并想用它们各自的方块替换所有重复项,您可以使用以下代码:
# 创建一个空字典
映射 = {}
# 遍历原始列表
对于 my_list 中的项目:
# 检查字典中是否已经存在item
如果项目不在映射中:
# 如果不是,将其添加到字典中并将其平方作为值
映射[项目] = 项目 * 项目
# 创建一个空的结果列表
结果列表 = []
# 再次遍历原始列表并用字典中的正方形替换每个元素 for i in my_list: result_list.append(mapping[i])
# 打印结果 print(result_list)