国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python實現比較兩個列表(list)范圍

2020-02-23 01:35:31
字體:
來源:轉載
供稿:網友

有一道題: 比較兩個列表范圍,如果包含的話,返回TRUE,否則FALSE。 詳細題目如下:

Create a function, this function receives two lists as parameters, each list indicates a scope of numbers, the function judges whether list2 is included in list1.

 Function signature:
    differ_scope(list1, list2)

 Parameters:
    list1, list2    - list1 and list2 are constructed with strings,
                      each string indicates a number or a scope of
                      numbers. The number or scope are randomly, can
                      be overlapped. All numbers are positive.

                        E.g.
                            ['23', '44-67', '12', '3', '20-90']
 Return Values:
    True            - if all scopes and numbers indicated by list2 are included in list1.
    False           - if any scope or number in list2 is out of the range in list1.
 Examples:
    case1    - list1 = ['23', '44-67', '12', '3', '20-90']
               list2 = ['22-34', '33', 45', '60-61']
               differ_scope(list1, list2) == True
    case2    - list1 = ['23', '44-67', '12', '3', '20-90']
               list2 = ['22-34', '33', 45', '60-61', '100']
               differ_scope(list1, list2) == False

貼上自己寫的代碼如下:(備注: python 2.7.6)

def differ_scope(list1, list2):   print "list1:" + str(list1)   print "list2:" + str(list2)   #設置臨時存放列表   list1_not_ = [] #用于存放列表1正常的數字值,當然要用int()來轉換   list1_yes_ = [] #用于存放列表1中范圍值如 44-67   list1_final = [] #用于存放列表1中最終范圍值 如:[1,2,3,4,5,6,7,8,9,10]   temp1    = []      list2_not_ = []  #用于存放列表2正常的數字值,當然要用int()來轉換   list2_yes_ = []  #用于存放列表2中范圍值如 44-67   list2_final= []  #用于存放列表2中最終范圍值 如:[1,2,3,4,5,6,7,8,9,10]   temp2   = []    temp    = []  #用于存放列表1,與列表2比較后的列表,從而判斷結果為True還是False.      #對列表1進行處理   for i in range(len(list1)): #用FOR循環對列表1進行遍歷     tag = 0     if list1[i].find('-')>0:#對含范圍的數字進行處理,放到list_yes_列表中        strlist = list1[i].split('-')     list1_yes_ = range(int(strlist[0]),int(strlist[1])+1)#讓其生成一個范圍列表     for each in list1_yes_:     #FOR循環遍歷所有符合條件的.         [temp1.append(each)]     else:           #對列表1中正常的數字進行處理,放到list_not_列表中       list1_not_.append(int(list1[i]))#對列表1中進行處理,放到list_yes_      [temp1.append(i) for i in list1_not_ if not i in temp1]#去除重復項   list1_final = sorted(temp1) #比較后,排序,并放到list1_final列表中   print "list1_final value is:" + str(list1_final)#打印排序后最終list1_final列表       #對列表2進行處理   for i in range(len(list2)):     if list2[i].find('-')>0:       strlist = list2[i].split('-')     list2_yes_ = range(int(strlist[0]),int(strlist[1])+1)     for each in list2_yes_:         [temp2.append(each)]       print "Temp2:" + str(temp2)     else:       list2_not_.append(int(list2[i]))   [temp2.append(i) for i in list2_not_ if not i in temp2]   list2_final = sorted(temp2)   print "list2_final value is:" + str(list2_final)    #對兩個列表進行比較,得出最終比較結果.   [temp.append(i) for i in list2_final if not i in list1_final]#比較兩個列表差值.   print "In list2 but not in list1:%s" % (temp)#打印出列表1與列表2的差值   if len(temp)>=1 :     print "The result is: False"   else:     print "The result is: True"  if __name__ == '__main__':   list1 = ['23', '44-67', '12', '3','90-100']   list2 = ['22-34', '33', '45']   differ_scope(list1,list2)             
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汕尾市| 广饶县| 宣化县| 宜兰县| 中阳县| 娱乐| 普兰店市| 盐津县| 崇文区| 宁武县| 阿鲁科尔沁旗| 庆阳市| 沽源县| 夹江县| 甘洛县| 梁河县| 牙克石市| 深圳市| 临武县| 额尔古纳市| 合肥市| 康乐县| 绥中县| 平罗县| 泸西县| 同德县| 青浦区| 泾阳县| 彰武县| 搜索| 合阳县| 华池县| 烟台市| 东乡| 桂林市| 新密市| 镇安县| 象山县| 拉萨市| 波密县| 金昌市|