- # 有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币
- # [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 <len(list_num)-2:
- j=i+1
- while j<len(list_num)-1:
- if list_num[j] == list_num[i]:
- list_num.pop(j)
- j-=1
- j+=1
- i+=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
- list[i],list[j] = list[j],list[i]
- i += 1
- j -= 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