-
python列表元素可以重复吗_Python列表中的元素重复
2021-02-10 00:48:32在某些情况下,我们需要重复列表中的值。值的这种重复可以通过以下方式在python中实现。使用嵌套的for循环这是一种简单的方法,其中选择每个元素,通过内部for循环创建其重复项,然后将它们都传递给外部for循环。...在某些情况下,我们需要重复列表中的值。值的这种重复可以通过以下方式在python中实现。
使用嵌套的for循环
这是一种简单的方法,其中选择每个元素,通过内部for循环创建其重复项,然后将它们都传递给外部for循环。
示例# Given list
listA = ['Mon', 'Tue', 9, 3, 3]
print("Given list : ",listA)
# Adding another element for each element
Newlist = [i for i in listA for n in (0, 1)]
# Result
print("New list after duplication: ",Newlist)
输出结果
运行上面的代码给我们以下结果-Given list : ['Mon', 'Tue', 9, 3, 3]
New list after duplication: ['Mon', 'Mon', 'Tue', 'Tue', 9, 9, 3, 3, 3, 3]
使用itertools
itertools模块处理可迭代对象中的数据操作。在这里我们应用chain.from_iterables其中
示例import itertools
# Given list
listA = ['Mon', 'Tue', 9, 3, 3]
print("Given list : ",listA)
# Adding another element for each element
Newlist = list(itertools.chain.from_iterable([n, n] for n in listA))
# Result
print("New list after duplication: ",Newlist)
输出结果
运行上面的代码给我们以下结果-Given list : ['Mon', 'Tue', 9, 3, 3]
New list after duplication: ['Mon', 'Mon', 'Tue', 'Tue', 9, 9, 3, 3, 3, 3]
与减少
reduce函数将作为参数传递给它的特定函数应用于作为第二参数传递给它的所有列表元素。我们将其与add函数一起使用,该函数会添加列表中每个元素的重复元素。
示例from functools import reduce
from operator import add
# Given list
listA = ['Mon', 'Tue', 9, 3, 3]
print("Given list : ",listA)
# Adding another element for each element
Newlist = list(reduce(add, [(i, i) for i in listA]))
# Result
print("New list after duplication: ",Newlist)
输出结果
运行上面的代码给我们以下结果-Given list : ['Mon', 'Tue', 9, 3, 3]
New list after duplication: ['Mon', 'Mon', 'Tue', 'Tue', 9, 9, 3, 3, 3, 3]
-
python列表可以不按顺序查找元素吗_查找元素顺序无关紧要但重复列表元素有意义的重复列表...
2021-02-03 16:15:47我遇到了一个奇怪的问题,我需要找到重复的项集合,这些集合的顺序无关紧要,但集合中是否存在重复值却很重要。例如,假设我有以下列表:lol = [['red'],['blue', 'orange'],['orange', 'red'],['red', 'orange'],['...我遇到了一个奇怪的问题,我需要找到重复的项集合,这些集合的顺序无关紧要,但集合中是否存在重复值却很重要。例如,假设我有以下列表:lol = [
['red'],
['blue', 'orange'],
['orange', 'red'],
['red', 'orange'],
['red', 'red'],
['blue', 'orange', 'red'],
['red', 'orange', 'blue']
]
在我的案例中,唯一的收藏是:
^{pr2}$
我希望获得的信息是重复列表:dup_lol = [
['orange', 'red'],
['blue', 'orange', 'red']
]
我不关心哪个重复被报告为重复,即['orange', 'red']vs['red', 'orange'],只需报告重复组合。我第一次尝试使用一套冷冻装置:sofs = {frozenset(x) for x in lol}
但是,这种方法会被['red', 'red']列表绊倒,该列表被转换为['red']:set([frozenset(['red']),
frozenset(['orange', 'red']),
frozenset(['blue', 'orange', 'red']),
frozenset(['blue', 'orange'])])
另外,这并没有给我重复的,只有唯一的,而且我不能对列表列表运行差异。在
我确信我可以迭代父列表的暴力风格,但我觉得我错过了一些简单的东西。我几乎需要一个字典,其中键是有序列表,值是组合出现的次数,但是列表不能是字典键,这听起来很奇怪。在
-
python集合中的元素可以重复出现吗_python实现给定一个列表判断里面是否有重复元素...
2020-12-16 23:41:42展开全部有两个方法:使用列表的count方法,因为count方法可以32313133353236313431303231363533e58685e5aeb931333363393137做对象内的元素进行出现次数叠加计算list1=[1,2,3,4,4,5,6,7]list1.count(1)#结果为1list1...展开全部
有两个方法:使用列表的count方法,因为count方法可以32313133353236313431303231363533e58685e5aeb931333363393137做对象内的元素进行出现次数叠加计算list1=[1,2,3,4,4,5,6,7]
list1.count(1) #结果为1
list1.count(4) #结果为2
for i in list1:
if list1.count(i)>=2:
print('该元素%s重复'%i)
#结果:
该元素4重复
该元素4重复 #因为迭代了两次4所以有两次输出,功能是实现了,但是却打印了两次,有点不理想
2.借用工厂函数set()把对象转为集合和列表的copy方法(浅复制),集合会默认把重复元素去掉list1=[1,2,3,4,4,5,6,7]
list2=list1.copy() #为了不破坏原数据,临时浅复制给变量list2
list3=list(set(list2)) #使用set()函数将list2转为集合去掉重复元素又用list()转回列表
for i in list3: #对无重复元素的列表list3迭代
if i in list2:
list1.remove(i) #当list3内的元素存在于list2中,则把其元素从list2中删除,最后就会留下重复元素
print('list1:%s中的重复元素有:%s'%(list1,list2)) #组后输出原数据list1和最终结果list2
#结果:
list1:[1, 2, 3, 4, 4, 5, 6, 7]中的重复元素有:[4]
#效果实现了,也没问题,就是变量使用有点多。看你选择了
-
python列表可以不按顺序查找元素吗_你应该知道的python列表去重方法
2020-12-03 01:22:36前言列表去重是写Python脚本时常遇问题,因为不管源数据来自哪里,当我们转换成列表的方式时,有可能预期的结果不是我们最终的结果,最常见的就是列表中元素有重复,这时候第一件事我们就要做去重处理。我们先来个最...前言
列表去重是写Python脚本时常遇问题,因为不管源数据来自哪里,当我们转换成列表的方式时,有可能预期的结果不是我们最终的结果,最常见的就是列表中元素有重复,这时候第一件事我们就要做去重处理。
我们先来个最简单的方式,用python内置的数据类型set来实现。
假设我们的列表数据是这样的:
?
因为集合的元素是不能重复的,所以将列表转换成集合时,会自动去掉重复的元素,这就是基本原理,代码如下:
?
这种方式缺点是再转换成列表时无法保存之前的列表顺序,如果没这个要求,这种方式是最简答的, 也许有的小伙伴觉得好简单呀,这没什么技术含量吗,没错,所以一般面试题里让你列表去重一般会这么写:
请写出列表去重的方法(不能用set)
人家写明不能用set了,所以呢,这招有时候还不能用,那当然也难不倒我们,我们还有其他方法。
我们都知道列表可以遍历,能遍历问题也就简单了,我们再定义空列表,然后遍历有数据的列表,再遍历时加一个判断,如果在空列表里没有,就加进去,如果有了就丢掉,代码如下:
?
大家觉得这种方式是不是还可以,但这种方式对付一般的小列表是没问题的,但如果遇到一个超级大列表,也会力不从心,因为在the_list列表变的非常大,在判断时候会影响效率,因为列表是按索引顺序去查找的,当数据量很大时会变慢。
也许你要问了,那我遇到大的列表咋办? 有更牛掰点的方法吗?当然有,让我们继续,既然在判断时用列表会影响效率,那我们就转换一个思路,我们用集合,那你可能要问了,那集合就快了?没错,因为set使用的hash函数查找值,虽然set无序,但位置是固定的,只需一次就可以查到特定元素是否存在,网上有人做了列表和set的元素查找对比,相同的数据条件下,用list耗时16分钟,用set耗时是52秒,这一对比看出效果了吧,别的不多说了,贴代码:
?
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
原文链接:https://www.mindg.cn/?p=1753
-
python列表中的元素可以是集合数据吗_举例讲解Python中的list列表数据结构用法...
2020-12-13 11:36:52循环和列表不管怎样,程序会做一些重复的事情,下面我们就用for循环打印一个列表变量。做这个练习的时候你必须自己弄懂它们的含义和作用。在使用for循环之前,我们需要一个东西保存循环的值,最好的方法是使用一个... -
python打印输出不在列表中的元素_关于python:如何在列表中打印元素(非重复)...
2020-12-03 14:51:47如果列表很长,我甚至不知道列表中有多少种元素呢?python中有什么函数可以做到这一点吗?或者,如何编写一个for循环来完成它?你想保持元素的顺序吗?相关:stackoverflow.com/questions/89178/…只使用... -
python字典键值可以是元组或列表吗_Python列表、元组、字典、集合的内置使用方法...
2020-11-30 09:04:58列表:是一种可以存储多个值得数据容器内容是有序的可以存储任何数据类型可以存储重复的元素是可变类型(当内容发生变化时id不变)元组:也是一种可以...存储任何数据类型可以存储重复的元素是不可变类型元素和列表到底谁快... -
python findall返回的是列表吗_人生苦短,你用Python吗?(七)数据结构——元组、列表...
2021-01-15 16:02:45人生苦短,你用python吗?化学专业的小凯,却喜欢上了计算机语言,业余时间入门了python...1.序列序列是一种可迭代的、元素有序、可以重复出现的数据结构,序列可以通过索引访问元素。序列包括:列表(list)字符串(st... -
java的for循环取出数据只是拿到最后一个_人生苦短,你用Python吗?(七)数据结构——元组、列表...
2020-11-22 05:25:42人生苦短,你用python吗?化学专业的小凯,却喜欢上了计算机语言,业余时间入门了python...1.序列序列是一种可迭代的、元素有序、可以重复出现的数据结构,序列可以通过索引访问元素。序列包括:列表(list)字符串(st... -
python 字典的值可以为集合吗_Python 集合(Set)、字典(Dictionary)
2021-01-28 21:06:54集合(Set)集合是无序的,无序也就没有索引,不能进行索引相关的操作。无序,python解释器就不能通过索引(位置)区分集合中的...a={1,1,3}print(a) #{1,3} 会自动去掉重复的元素a={1,"ok"} #数据类型可以不同print(a) ... -
LeetCode|442.数组中重复的数据
2020-09-11 10:40:40你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题吗? 示例: 输入: [4,3,2,7,8,2,3,1] 输出: [2,3] 分析: 先将数组进行排序 通过遍历找到两个一样的就添加进返回列表中 代码: class Solution: def ... -
Python的十七个骚操作,你都学会了吗?(下)
2021-01-22 09:37:156 反转列表 7 转置二维数组 8 链式比较 推荐一个Python学习交流的裙,有什么不懂的都可以在裙里问:610 380 249 9 链式函数调用 10 复制列表 ...11 字典 get 方法 ...17 移除列表中的重复元素 ... -
python集合是可变类型吗_python集合是可变类型吗
2020-12-20 11:12:14python 集合的元素为什么不能是可变数据类型集合(set)是可以变的,它是一个无序不重复元素集 元组(touple)才是不可变的Python 中的可变类型对象和不可变类型是什么意思?Python3 中有六个标准的数据类型(内置数据类型... -
set 有序吗js_js中Set和Map
2020-12-23 07:03:58没有重复元素,任何元素存在唯一性,因此可以用来作去重处理,存储不重复的数据,3.插入速度和删除速度非常快,遍历查找速度也非常快,但是略低于键值对类型。4.支持方法:add(添加) delete(删除) has(查找) fo... -
python unique函数_15段极简Python代码:这些小技巧你都Get了吗?
2020-11-27 00:41:16-Python 是机器学习最广泛采用的编程语言,它最重要的优势在于编程的易用性。如果读者对基本的 Python 语法已经有一些了解,... 重复元素判定✖以下方法可以检查给定列表是不是存在重复元素,它会使用 set() 函数来... -
python for结束不能接print_python初探06_你见过forelse循环语句吗?
2021-01-24 12:36:21循环语句循环语句能够非常方便的处理计算机的重复运算.本篇文章的主要内容的思维导图如下:06_1.jpg<...for 循环在python for循环...说人话就是用for循环可以遍历列表等序列.其语法为: for 单个元素 in 序列: xxxx... -
你真的了解Redis的list数据结构吗--redis之面试官爱我系列(2)
2020-05-10 18:48:02List(列表) 各位好我是霜华,今天将一个在开发中很常用的一个数据结构(用于消息队列) 下面开讲!!! 基本定义: 有序可重复,类似LinkedList ,插⼊和删除...列表最多可存储2^32-1 元素(4294967295 每个类表可存 -
Python的骚操作,继续更新
2020-10-12 10:22:307 转置二维数组 ...17 移除列表中的重复元素 这些是你想要的吗? 关注小编后私信【1】可以得到哦(私信方法:点击我头像进我主页有个上面有个私信按钮) 更多精彩内容 https://mz.tanzhouedu.com/? -
【DW组队学习—LeetCode】day11
2021-01-22 22:21:21136. 只出现一次的数字 给定一个非空整数数组,除了...已知表中重复元素也只出现2次,所以可以准备一个列表,第一次出现时将元素放进该列表,第二次出现移出该列表,最后返回列表值 代码: class Solution: def sing -
JS Dict 字典
2019-04-14 13:40:40字典(dictory)是一种以键-值对...集合、字典、散列表都可以存储不重复的值,它们之间有什么区别吗? 集合:集合感兴趣的是每个值本身,并把它当做主要元素。集合表示一组不相同的元素(不重复的元素)。集合以[值... -
Python基础笔记--散列类型、运算符优先级和逻辑运算
2019-08-29 20:22:56回想下,列表中可以插入重复的元素吗? a.集合的定义方法 两种方法:set() 和 { } 特定:集合有唯一性、可变性和无序性 唯一性:集合中的元素具有唯一性,不存在两个相同的元素 可变性:集合是可变对象 无序性:集合... -
Day10零基础入门python第016讲课后测试题及答案:序列
2020-05-10 19:02:37都可以通过索引得到每一个元素 索引值都从0开始 都可切片 有共同的操作符(重复操作符、拼接操作符、成员关系操作符) 1. 请问分别使用什么 BIF,可以把一个可迭代对象转换为列表、元祖和字符串? list turple ... -
python学习记录(16)
2020-12-08 23:22:461)都可以通过索引得到每一个元素 2)默认索引值总是从0开始(当然灵活的Python还支持负数索引) 3)可以通过分片的方法得到一个范围内的元素的集合 4)有很多共同的操作符(重复操作符、拼接操作符、成员关系操作符... -
【LeetCode 136】只出现一次的数字(Python)
2020-06-07 11:05:49已出现的数字计入另一个新建的空列表b内(重复的数)。然后遍历题目给定的非空数组是非在b内,不在的就是只出现过一次的数。 时间复杂度:O(n) 空间复杂度:O(n) 题目要求不使用额外的空间来实现,也就是空间复杂度... -
448. Find All Numbers Disappeared in an Array(1-n未出现的数)
2020-04-14 22:30:08给定整数的数组,其中1≤A [1]≤ Ñ(Ñ =数组的大小),一些...判断哪些是未出现的数字,不能使用额外的空间,(第一想法是异或求重复的那道题和1-n求重复的数),因为数固定了范围,所以对于每一个数都能在该数组... -
java 面试题 总结
2009-09-16 08:45:34ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector... -
超级有影响力霸气的Java面试题大全文档
2012-07-18 09:47:04ArrayList 和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,... -
400个DreamWeaver插件
2013-03-28 15:30:13mxp/可以动态的替换某个元素的CSS类 mxp/改变文字的背静色 mxp/改变页面背景颜色 mxp/来回切换文字的背景色 mxp/插入一段连续的文字 mxp/将选择的一段文字变成注释 mxp/将选择的文字中的注释去掉 mxp/创建资源管理器... -
你必须知道的495个C语言问题
2015-10-16 14:14:28然后又使用一些内存分配技巧使namestr数组用起来好像有多个元素,namelen记录了元素个数。它是怎样工作的?这样是合法的和可移植的吗? 2.8 我听说结构可以赋给变量也可以对函数传入和传出。为什么K&R1却明确说明不...