拿硬币
# 有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币
# [10, 8, 5, 3, 27, 99]# 定义如题的带有5个元素的列表,表示五堆硬币
list = [10,8,5,3,27,99]
# 定义一个变量用来记录拿的次数
get =0
# 将列表遍历,如果元素是双数则只需拿除二次即可,如为单数则需+1次
for i in list:if i % 2 == 0:get += i//2else:get +=i//2+1
print(get)
孪生数
# 如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".import math# 定义一个空的数组,用于存放质数
prime=[]
# 找出质数并将质数放入数组中
for i in range(2,101):flag = Truefor j in range(2,int(math.sqrt(i))+1):if i%j == 0:flag = Falsebreakif flag:prime.append(i)# 对数组进行遍历,找到孪生数
for index in range(0,len(prime)-1):if prime[index]+2==prime[index+1]:print(f"{prime[index]} {prime[index+1]}||",end="")
求最值
# 给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和# 定义一个列表
ran_num = [56,45,90,89,132,78,52,34,45,2,145,65,76]
# 对数组进行遍历求最值
max = ran_num[0]
min = max
num_sum = 0
num_avg = 0
for i in ran_num:# 求最大值if max < i:max = i #求最小值 if min > i:min = i # 求和num_sum += i# 求平均值
num_avg = num_sum/len(ran_num)
print(max,min,num_sum,int(num_avg))
数据去重
# 将list中的重复数据去重,至少使用两种方案# 定义一个带重复元素的list
list_num = [2,2,3,4,2,4,0,4,5,6,7,8,96]
# 方法一:利用哈希表的无序不重复
set_num = set(list_num)
list_num = list(set_num)
print(list_num)#方法二:对list中元素与下一位元素比较,找到重复元素后,将该元素移除list
i = 0
while i <len(list_num)-2:j=i+1while j<len(list_num)-1:if list_num[j] == list_num[i]:list_num.pop(j)j-=1 j+=1i+=1 print(list_num)
列表合并
# 两个列表进行合并操作 # 定义两个列表
list_1 = [5,5,4,3,2,4,75,87,5,9,0,2,9,]
list_2 = [3,2,1,53,534,23,4,5,6,3,4,22,4]
# 将两个表合并
# 方法一:用extend函数
list_1.extend(list_2)
print(list_1)
# 方法二:对list_2遍历,并添加到list_1的尾部
for i in list_2:list_1.append(i)
print(list_1)
判断两个列表是否包含
# 使用列表判断一个列表是否在另外一个列表中# 定义两个列表
list_1 = [1,2,3,4,3,5,6,7,4]
list_2 = [1,4,6,3,5,3,5]# 将两个列表转成集合来判断
set_1 = set(list_1)
set_2 = set(list_2)# 求得两个集合的并集
union = set_1.intersection(set_2)# 将并集和两个数组比较,判断
if union == set_1:print("list_1在list_2中")
elif union == set_2:print("list_2在list_1中")
else:print("两个集合没有交集")
列表的反转 列表的排序
# 列表的反转 列表的排序# 定义一个列表
list = [1,2,3,4,5,3,2,4]
# 列表的反转
i = 0
j = len(list)-1
while i <j:list[i],list[j] = list[j],list[i]i += 1j -= 1
print(list)
# 列表的排序
for i in range(0,len(list)-1):for j in range (i,len(list)):if list[i]>list[j]:list[i],list[j] = list[j],list[i]
print(list)
0~10的随机数添加到列表
# 如何将0-10随机存入列表中import random# 定义一个列表,用于存储数据
list1 = []
# 将0~9的随机数循环十次添加到列表的尾部
for i in range(10):random_num =random.randint(0,10)list1.append(random_num)
print(list1)
在连续列表中找重复值
# 存在一个1~n的连续列表,在其中不小心重复了一个值,请找出这个重复值# 定义一个如题列表:其中重复值是“7”
list1 = [1,2,3,4,5,6,7,7,8,9,]
# 对list1遍历找到重复数
for i in range (0,len(list1)-1):for j in range (i+1,len(list1)):if list1[i] == list1[j]:print(list1[i])break