- 学习测试开发的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题研究了半个多小时还是没有搞出来,明天继续吧!