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]