-
”’
题目:
给定一个int list a,满足a[i+1]>=a[i],给定int key,找出list a中第一个大于等于key的元素的index,无满足要求的元素则返回-1.
函数定义:
def findIndex(int_list,int_key)”’
#定义函数 def findIndex(int_list, int_key): ''' 给定一个int list a,满足a[i+1]>=a[i],给定int key,找出list a中第一个大于等于key的元素的index,无满足要求的元素则返回-1. :param int_list: :param int_key: :return: ''' for i in int_list: if i >= int_key: return int_list.index(i) break if int_key not in int_list: return -1 if __name__ == "__main__": #定义一个 int list,并初始化 list1 = [1,1,2,2,3,3,4,4,5,5,6,6] #调用函数,并传入参数,注:传入的int_key值是一个不存在int_list的值.返回-1; index1 = findIndex(list1, 8) print (index1) # 调用函数,并传入参数,注:传入的int_key的值在int_list的值.返回其首次出现时对应的下标; index2 = findIndex(list1, 3) print(index2)
”’
使用到的知识点的总结:
1.for循环语句
2.if判断语句
3.break的使用
break用在循环语句当中,用于结束当前循环.满足某种条件的时候,立即结束,跳出循环.
扩充:continue用在循环语句当中用于跳过本次循环,进入下次循环,用于加速循环.
4.列表的方法使用,查询方法(in, not in, index)
5.函数,有参数有返回值的函数,函数有返回值,在调用函数的时候,需要定义一个变量取接那个返回的值!
”’ -
有一个3G大小的文件,文件每行一个string,内容为酒店的id和一个图片的名字,使用“ ”分割
示例:ht_1023134 + " " + hidfadsfadsfdfadsf2r234523,jpg
表示的是一个酒店包含的一张图片,统计含有图片数量为[20,无穷大]的酒店id,含有图片数量为[10,20]的酒店id、含有图片数量为[10,5]的酒店id,含有图片数量为[0,5]的酒店id,并将结果输出到文件中
0-5 + “ ” + id1 + “ ” + id2 + .....
5-10 + “ ” + id1 + “ ” + id2 + .....
10-20 + “ ” + id1 + “ ” + id2 + .....
20-无穷大 + “ ” + id1 + “ ” + id2 + .....
from collections import Counter count_dict = {} cou = Counter() with open('a.txt', encoding='utf-8') as f: for line in f: hotel, image = line.split() hotel_id = hotel.split('_')[1] cou.update({hotel_id,1}) if hotel_id in count_dict: count_dict[hotel_id] += 1 else: count_dict[hotel_id] = 1 del cou[1] zero_five = ['0-5'] five_ten = ['5-10'] ten_twenty = ['10-20'] twenty_infinite = ['10-去穷大'] for hotel_id,count in count_dict.items(): if count < 5 : zero_five.append(hotel_id) elif count < 10 : five_ten.append(hotel_id) elif count < 20: ten_twenty.append(hotel_id) else: twenty_infinite.append(hotel_id) with open('b.txt','w',encoding='utf-8') as b: b.write(' '.join(zero_five)) b.write(' ') b.write(' '.join(five_ten)) b.write(' ') b.write(' '.join(ten_twenty)) b.write(' ') b.write(' '.join(twenty_infinite))