python相同元素
1. python如何查询两list中第一列一样的元素
第一个问题:查询两个list中第一列元素
element_1 = list1[0]
element_2 = list2[0]
print("list1中第一列元素:{e1}, \n ,list2中第一列元素:{e2}".format(e1 = element_1, e2 = element_2))
第二个问题:查询两list中第一列一样的元素(思路就是遍历list2,然后将list2中与list1元素一样的元素打印出来,用if in判断即可)
for i in element_2:
if i in element_1:
print(i)
第三个问题:查询两lits中第一个list中第一列存在而第二个list中第一列不存在的(思路与第二问类似,用if not in判断即可,只是这里需要两个list相互判断)
for i in element_1:
if i not in element_2:
print(i)
for j in element_2:
if j not in element_1:
print(j)
2. Python。重复元素判定。编写一个函数,接受列表作为参数
代码如下:
def func1(num_list):
if len(num_list) != len(set(num_list)):
return True
else:
return False
if __name__ == '__main__':
num_list = [[1, 2, 3, 4], [6, 7, 8], [4, 5, 6, 6, 6]]
for one_list in num_list:
print(func1(one_list))
运行结果:
(2)python相同元素扩展阅读
python对列表去重的几种方式:
1、直观方法,先建立一个新的空列表,通过遍历原来的列表,再利用逻辑关系not in 来去重。总结:这样可以做出来,但是过程不够简单。但是此方法保证了列表的顺序性。
2、利用set的自动去重功能,将列表转化为集合再转化为列表,利用集合的自动去重功能。简单快速。缺点是:使用set方法无法保证去重后的顺序。
3. python 判断两个list 是否有相同的元素
最简单的方法:将两个list均变为集合set,求集合的交集,若交集不为空则有相同元素。且由此方法确定了有哪些相同元素,再可将交集转为列表。
4. python删除list重复元素
在Python中主要有5种方式 。
1、使用set函数
set是定义集合的,无序,非重复
numList = [1,1,2,3,4,5,4]
print(list(set(numList)))
#[1, 2, 3, 4, 5]
2、先把list重新排序,然后从list的最后开始扫描
a = [1, 2, 4, 2, 4, 5,]
a.sort()
last = a[-1]
for i in range(len(a) - 2, -1, -1):
if last == a[i]:
del a[i]
else:
last = a[i]
print(a) #[1, 2, 4, 5]
3、使用字典函数
a=[1,2,4,2,4,]
b={}
b=b.fromkeys(a)
c=list(b.keys())
print(c) #[1, 2, 4]
4、append方式
def delList(L):
L1 = []
for i in L:
if i not in L1:
L1.append(i)
return L1
print(delList([1, 2, 2, 3, 3, 4, 5])) #[1, 2, 3, 4, 5]
5、count + remove方式
def delList(L):
for i in L:
if L.count(i) != 1:
for x in range((L.count(i) - 1)):
L.remove(i)
return L
print(delList([1, 2, 2, 3, 3, 4]))#[1, 2, 3, 4]
5. python 列表内元素相同下标就相同了为什么
不是元素相同下标就会相同,函数中使用index方法只会从列表中找出某个值第一个匹配项的索引位置。如果想打印一个列表中索引为偶数的元素,可以使用一下方法:
defoddTuples(aTup):
newaTup=[]
foriinrange(0,len(aTup)):
ifi%2==0:
newaTup.append(l[i])
returnnewaTup
oddTuples([9,20,20,1,7,10,0,7])
#结果为[9,20,7,0]
6. python list找出一个元素的位置(重复元素怎么分别找出位置)
几种方式的回答:
1)
print('*'*15,'想找出里面有重复数据的索引值','*'*15)
listA = [100, 94, 88, 82, 76, 70, 64, 58, 52, 46, 40, 34,76]
print('列表中第1次出现的位置 = ',listA.index(76))
2)
a_list = ['a','b','c','c','d','c']
find = 'c'
print('重复元素出现的位置索引分别是 = ',[i for i,v in enumerate(a_list) if v==find])
-----------------------------------------------------
3)### 求某个元素重复的索引值,函数方式表述如下:
a_list = ['a','b','c','c','d','c']
def unique_index(L,f):
"""L表示列表, i表示索引值,v表示values,f表示要查找的元素 """
return [i for (i,v) in enumerate(L) if v==f]
print('索引值 = ',unique_index(a_list,'c'))
运行结果:
索引值 = [2, 3, 5]
4)还缺一种,列出多个元素重复的索引值,以后再补充
......
7. python 寻找两个list 相同的元素
list1= ['0+1998', '1+1998', '2+1998', '3+1998']
list2 = ['1+1998', '2+1998']
list3 = [1 if i in list2 else 0 for i in list1]
print(list3)
8. python两个列表字典,删除相同元素
按照你的要求去除list2中的重复项的Python程序如下
list1=[{'title':'我是标题1','url':'我是网址1'},{'title':'我是标题2','url':'我是网址2'},{'title':'我是标题3','url':'我是网址3'}]
list2=[{'title':'我是最新1','url':'我是最新网址1'},{'title':'我是最新2','url':'我是最新网址2'},{'title':'我是标题1','url':'我是网址1'}]
list3=[item for item in list2 if item not in list1]
print(list3)
9. python 如何找出两个list中的相同元素
这个问题有多种解法,最常见的是brute-force 也叫暴力枚举法,也就是把两个list当中的每个元素都取出来进行两两比较,直到找到相同元素。设第一个数组的长度为n,第二个数胡兆组的长度为m,则时间复杂度为O(n*m),空间复杂度为O(1)
但是个问题陵穗常见的解决方法是哈希表。在Python当中有Dictionary这种数据类型,其实是一个哈希表。运用这种数据类型,可以迅速检索到想要的元素。但这种方法需要存储一组元素,所以时间复杂度为O(n),空间复杂度为O(m)。
以下是程序:
def find_same_element(l1, l2):
dist = {}
for i in l1:
dist[i] = 1
for i in l2:
if dist.get(i) > None:
return i
return None
以下是检验
l1 = [1, 2, '34', 34, 5]
l2 = [4, 7, 8]
print find_same_element(l1, l2)
应当输出None
l1 = [1, 2, '34', 34, 5]
l2 = [4, 7, 8,5]
print find_same_element(l1, l2)
应当输出5
这个函数只能找尺做卜到一个共同元素,如果两个list有多个相同元素则只能输出中间的一个。
这个问题常见于面试题,属于最简单的面试题目。需要给面试官说明的是,
第一,哈希表可以快速检索元素,
第二,python有独特的数据类型,
第三,多个共同元素的情况需要面试官告知如何处理,
第四,注意没有共同元素的时候的输出(程序中为None但面试官希望你能提出这个问题)