我使用“Ok, Python!”解决问题 并陷入以下任务:
给出了一个清单
[1.0, 'ok', True, 'ok', 7, 1]。从中删除重复的元素(列表中不应留下重复的元素)。在屏幕上显示修改后的列表。
当心!值1.0、True和1不重复!
我还是不明白该怎么做。我得到[1.0, 'ok', 7]或者只是一组数据
我用了几种方法: 第一:
my_list = [1.0, 'ok', True, 'ok', 7, 1]
dublicate = list(dict.fromkeys(my_list))
第二:
my_list = [1.0, 'ok', True, 'ok', 7, 1]
dublicate = set(my_list)
pustoi = []
for num in dublicate:
for sec in my_list:
if sec == num and type(sec) == type(num):
break
else:
pustoi.append(sec)
第三:
my_list = [1.0, 'ok', True, 'ok', 7, 1]
dublicate = set(my_list)
例如这样:
结论:
解释:
当我们第一次在列表中遇到一个元素及其类型时,我们将在变量
used(“used” )中存储对 。(элемент, тип_элемента)my_list在相同的情况下(并且没有其他情况),我们将这样的元素写入列表中
no_duplicates(“没有重复项”)。笔记:
您的所有解决方案都因仅考虑值而不管其类型如何而
dict.fromkeys()被打破。set()从列表中创建一组值/类型对,将其放入集合中,从集合中提取对,将值存储在新列表中:
如果上面的代码难以阅读,这里有一个循环形式的类似想法。
pairs- 许多以前已经遇到过的值/类型对。仅当配对是新配对时,才会包含在结果中。原始列表值的顺序被保留: