「Python」2020.03.18学习笔记 | 第四章列表、元组、字典-习题(17-18)

  • 学习测试开发的Day76,真棒!
  • 学习时间为1H50M
  • 第四章列表、元组、字典-习题(17-18)

17、使用二分法实现在一个有序列表中查找指定的元素

代码:

def find(list1,word):
    l_min=0
    l_max=len(list1)-1
    while l_min<=l_max:
        mid=int((l_min+l_max)//2)
        if list1[mid]==word:
            return "%d的索引位置是:%d"%(word,mid)
        elif list1[mid]<word:
            l_min=mid+1
        else:
            l_max=mid-1
    return "%d不在此列表中!"%word
list1=[1,2,3,4,5,6,7,8,9,10,11]
word1=4
word2=6
word3=7
word4=9
word5=-1
print(find(list1,word1))
print(find(list1,word2))    
print(find(list1,word3))
print(find(list1,word4))
print(find(list1,word5))

输出结果:

PS D:\0grory\chapter4> python .\17_findword.py
4的索引位置是:3
6的索引位置是:5
7的索引位置是:6
9的索引位置是:8
-1不在此列表中!

18、分离list1与list2中相同部分与不同部分

代码:

list1=[1,2,3,6,7,8]
list2=[9,0,1,2,3,5]
same=[]
diff=[]
for i in list1:
    if i not in list2:
        diff.append(i)
    for j in list2:
        if i==j:
            same.append(i)
for i in list2:
    if i not in list1:
        diff.append(i)
    

print("相同部分为:"+str(same))
print("不同部分为:"+str(diff))

输出结果:

PS D:\0grory\chapter4> python .\18_same_diff.py
相同部分为:[1, 2, 3]
不同部分为:[6, 7, 8, 9, 0, 5]

19、找出一个多维数组的鞍点,即该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点

鞍点是二维数组中一个特殊的元素,它是本行最大的值,同时又是本列最小的值。

鞍点可能不止一个,也可能没有。

第19题研究了半个多小时还是没有搞出来,明天继续吧!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容