拿硬币
# 有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币
# [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//2
else:
get +=i//2+1
print(get)
孪生数
# 如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".
import math
# 定义一个空的数组,用于存放质数
prime=[]
# 找出质数并将质数放入数组中
for i in range(2,101):
flag = True
for j in range(2,int(math.sqrt(i))+1):
if i%j == 0:
flag = False
break
if 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
列表合并
# 两个列表进行合并操作
# 定义两个列表
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 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