lst1 = list(map(int,input().split())) count = 0 repeat_name = [] for i in range(len(lst1)): for j in range(i + 1, len(lst1)): if lst1[i] == lst1[j]: repeat_name.append(lst1[i]) count += 1 break if count==0: print('[]') break print(sorted(set(repeat_name)))优化代码
时间: 2024-03-09 09:50:12 浏览: 79
c++容器list、vector、map、set区别与用法详解
这段代码可以通过使用 set() 函数来优化查找重复元素的过程。具体来说,可以将 lst1 转换为一个集合(set),然后使用列表推导式来找到其中重复的元素,最后对结果进行排序。
以下是优化后的代码:
```python
lst1 = list(map(int,input().split()))
repeat_name = sorted([x for x in set(lst1) if lst1.count(x) > 1])
if len(repeat_name) == 0:
print('[]')
else:
print(repeat_name)
```
在上面的代码中,首先将 lst1 转换为一个集合,这样可以去除其中的重复元素。然后使用列表推导式 `[x for x in set(lst1) if lst1.count(x) > 1]` 来找到其中重复的元素。这个列表推导式的含义是:对于集合中的每个元素 x,如果在 lst1 中出现的次数大于 1,则将其添加到结果列表中。
最后,如果结果列表为空,则输出一个空列表,否则按照从小到大的顺序输出结果列表。
需要注意的是,这段代码仍然没有考虑到输入为空或者只有一个元素的情况。如果需要对这些情况进行处理,可以添加相应的判断语句。
阅读全文