python列表比较
1. python 比较列表内字符串是否相等
要使用contains方法,直接在后面跟就可以了,加个str当然会报错
---不好意思,看了一下,python应该没有contains这个方法
可以使用find()代替
注意不要写成s.str.find(),s.find()就行了
2. python 两个列表对比,并输出相等的顺序
简单的调试了下,效果实现了:
代码:
importrandom
a=['a','s','d']
b=['j','k','l']
c=['o','p','q']
d=[]
cont=''
test=[a,b,c]
random.shuffle(test)#把test列表打乱,防止下面的for循环默认从a列表开始遍历,做到随机的效果
foriintest:
d.append(i[random.randint(0,2)])#随机从列表里获取一个元素放进d列表内,能实现从a,b,c列表里分别都随机获取一个元素
#对返回顺序进行处理
ifd[0]ina:
cont+='a'
ifd[1]inb:
cont+='.b.c'
else:
cont+='.c.b'
elifd[0]inb:
cont+='b'
ifd[1]ina:
cont+='.a.c'
else:
cont+='.c.a'
elifd[0]inc:
cont+='c'
ifd[1]ina:
cont+='.a.b'
else:
cont+='.b.a'
print(d)
print(cont)
测试结果:
功能是实现了,不过代码看起来有点多,你觉得不够好可以再优化一下
3. Python list 多个元素的列表,如何进行比较呢
从第一个元素顺序开始比较,如果相等,则继续
返回第一个不相等元素比较的结果
如果所有元素比较均相等,则长的列表大,一样长则两列表相等
4. python两个列表比较
直接遍历即刻
for i in a:
if i in b:
c.append (i)
5. python怎么比较两个列表中的元素
l1 = list('11100101')
l2 = list('00101011')
l3 = ['1' if l1[i]==l2[i] else '0' for i in range(len(l1))]
print ''.join(l3)
6. 如何用Python比较两个列表,并进行合并
list1=[('a',1),('b',5),('c',3)]
list2=[('a',2),('b',2)]
hash={}
fori,kinlist1+list2:
ifinotinhash:
hash[i]=k
elifk>=hash[i]:
hash[i]=k
list3=hash.items()
print(list3)
这样吗随便写的
7. python 里面有没有比较两个列表的函数
仅限没有重复的情况。
>>> a=[1,2,3,4,5,6]
>>> b=[1,2,3]
>>> set(a)-set(b)
set([4, 5, 6])
如果要考虑重复的话,就有点麻烦了:
from math import fabs
def compare(list1,list2):
dict1=dict()
dict2=dict()
total = list(set(list1+list2))
dif = []
for i in list1:
if str(i) in dict1:
dict1[str(i)] += 1
else:
dict1[str(i)] = 1
for i in list2:
if str(i) in dict2:
dict2[str(i)] += 1
else:
dict2[str(i)] = 1
for i in total:
if str(i) not in dict1 or str(i) not in dict2:
if str(i) in dict1:
for num in range(int(dict1[str(i)])):
dif.append(i)
else:
for num in range(int(dict2[str(i)])):
dif.append(i)
else:
count = fabs(int(dict1[str(i)])-int(dict2[str(i)]))
for num in range(int(count)):
dif.append(i)
return dif
a=[1,1,1,1,2,3,4,4,4,5,6,7,8,9]
b=[2,2,2,2,3,4,4,4,4,5,6,7,8,9,10,11]
print compare(a,b)
8. python两个列表(或集合、字典)进行比较,如果一个列表中的几位在另一个列表中出现,则删除这些项
#coding=utf-8
#py2.7
test1 = ['a1', 'b2']
test2 = ['a1_001', 'a1_002', 'a1_003', 'a2_001', 'a3_001', 'b2_001']
print filter(lambda x:x[:2] not in test1,test2)
#我是按照你给的例子来写的代码,这样只循环了 test2长度的次数
#“现在两组数据长度不一样”,不太明白这句话对于你的逻辑有啥影响
9. python两个列表怎么比较找出不同
可以使用把列表转换成集合然后做它们的差集,比如我们可以从下面的例子中得出l1和l2列表不同的元素:
l1 = [1,2,3,4,5]
l2 = [1,3,5]
difference = list(set(l1) - set(l2))
print(difference)
输出:
[2, 4]