Python中将人的名字加入列表去重但不改变顺序
时间: 2024-03-09 22:45:25 浏览: 41
如果要将人名加入列表并去重但不改变顺序,可以使用类似上面的有序字典方法。具体实现方法如下:
```python
from collections import OrderedDict
names = ['Alice', 'Bob', 'Charlie', 'Bob', 'David', 'Charlie', 'Eve']
names = list(OrderedDict.fromkeys(names))
print(names)
```
输出结果为:
```
['Alice', 'Bob', 'Charlie', 'David', 'Eve']
```
在上面的代码中,首先导入了OrderedDict模块,然后使用fromkeys()方法构建了一个有序字典,并将人名作为键插入到有序字典中,由于有序字典的键是唯一的,因此重复的人名会被去掉。最后,使用list()函数将有序字典转换为列表,得到去重后且不改变顺序的结果。
相关问题
python中将数组去重后不改变序列顺序怎么做
可以使用Python中的set()函数来实现数组去重,然后将去重后的元素重新存放到一个新的数组中,这样就可以保持原有的顺序不变。具体实现可以参考以下代码:
```
# 原始数组
arr = [1, 2, 3, 2, 4, 3, 5, 6, 5]
# 创建一个空的列表
new_arr = []
# 遍历原始数组
for i in arr:
# 如果元素不在新数组中,则添加到新数组中
if i not in new_arr:
new_arr.append(i)
# 打印去重后的数组
print(new_arr)
```
输出的结果为:`[1, 2, 3, 4, 5, 6]`,可以看到原有的顺序并没有改变。
从一些不同长度的顺序数组对比去重找到不重复数字集合
对于一些不同长度的顺序数组,我们可以使用种简单的方法来找到不重复数字集合。以下是一种可能的解方案:
1. 创建一个空的集合(Set)来存储不重复的数字。
2. 遍历数组中的每个元素。
3. 检查当前元素是否已经存在于集合中。
- 如果是,则说明该元素是重复的,跳过该元素。
- 如果不是,则将该元素添加到集合中。
4. 完成遍历后,集合中将只包含不重复的数字。
下面是一个示例代码,演示了如何实现该算法:
```python
def find_unique_numbers(arr):
unique_set = set()
for num in arr:
if num not in unique_set:
unique_set.add(num)
return unique_set
# 示例用法
array1 = [1, 2, 3, 4, 5, 5, 6, 6, 7]
array2 = [1, 2, 2, 3, 4, 5, 6, 7, 7, 8, 9]
array3 = [1, 1, 1, 1, 1]
unique_numbers1 = find_unique_numbers(array1)
unique_numbers2 = find_unique_numbers(array2)
unique_numbers3 = find_unique_numbers(array3)
print(unique_numbers1) # {1, 2, 3, 4, 5, 6, 7}
print(unique_numbers2) # {1, 2, 3, 4, 5, 6, 7, 8, 9}
print(unique_numbers3) # {1}
```
请注意,此方法假设数组是有序的。如果数组无序,则可以使用其他方法来找到不重复的数字集合。
阅读全文