1. 题库:把数列的元素重复n次,然后元素的平方形成新列表,然后去除重复元素
【问题描述】
读入一个整数列表和正整数n(n>1),把列表中每个元素重复n次,并对每个元素进行平方形成新的列表,最后去除列表中的重复元素。打印输出新列表。
【输入形式】
第一行输入列表,包括方括号,元素之间用逗号分隔。
第二行输入重复的次数。
【输出形式】
直接用print输出列表
【样例输入】
[2,3,4,5,5]
5
【样例输出】
[4, 9, 16, 25]
ls = eval(input())
n = eval(input())
# 重复列表元素n次
ls2=[];
for i in range(n):
ls2+=ls
ls3 = [x*x for x in ls2]
# 下面代码去除重复元素
ls4=[]
for x in ls3:
if not x in ls4:
ls4.append(x)
print(ls4)
2. 题库:找出列表中的多数元素
【问题描述】
读入一个大小为n的列表,找出其中的多数元素。多数元素是指在列表中出现次数大于n//2的元素(每个列表最多一个多数元素)。根据代码框架编写一个函数。
【输入形式】
输入列表,包括方括号,逗号分隔
【输出形式】
如果有多数元素,输出这个元素的值,如果没有多数元素,输出False
【样例输入】
[3,2,3]
【样例输出】
3
def search(y):
for x in y:
if(y.count(x)>(len(y)//2)):
return x;
return False;
nums = eval(input())
y = search(nums)
print(y)
3. 题库:找出不是两个列表中的共有元素,在结果列表升序没有重复元素
【问题描述】
给定两个整型列表,找出不是两者共有的元素。这些元素不重复的放入新的列表,并升序排列。输出结果列表
【输入形式】
第一行输入一个列表,包括方括号,逗号分隔
第二行输入一个列表,包括方括号,逗号分隔
【输出形式】
直接用print打印结果列表
【样例输入】
[1,2,3,4,5,6,7,8,8,9,9]
[1,2,3,4,7,7,7,10,10]
【样例输出】
[5, 6, 8, 9, 10]
【样例说明】
在第一个列表中8,9有重复元素,在结果列表中只能有一个。第二个列表中的10也有重复元素,去除。升序排列元素。
nums1 = eval(input())
nums2 = eval(input())
nums3 = []
# 把不nums1中和nums2不重复的元素加入nums3
for x in nums1:
if x not in nums2:
if x not in nums3:
nums3.append(x);
# 把num2中的元素不重复的加入nums3
for x in nums2:
if x not in nums1:
if x not in nums3:
nums3.append(x)
# True为逆序,False为正序
nums3.sort(reverse = False)
print(nums3)
4. 题库:判断一个数的两个加数是否在列表中
【问题描述】
读入一个列表nums和整数n,判断构成n的两个加数是否在列表中。每个元素可以使用多次。如果存在,这输出True,不存在输出False。
【输入形式】
第一行输入列表,包括方括号,列表元素逗号分隔
第二行输入整数
【输出形式】
True或者False
【样例输入】
[1,2,2,3]
6
【样例输出】
True
【样例说明】
输入的样例中,6=3+3,所以结果输出为True
如果第二行输入的是7。则输出False
nums = eval(input())
n = eval(input())
for x in nums:
if n-x in nums:
print(True)
break
else:
print(False)
5. 题库:判断一个和的两个加数是否在列表中,每个元素不能使用2次(片段)。
【问题描述】
读入一个整数列表nums,读入一个整数sum。判断列表中是否有两个元素的和为sum。每个位置的元素只能使用一次。如果满足条件输出True,不满足输出False。
【输入形式】
第一行输入列表,包含方括号,逗号分隔
d第二行输入一个整数
【输出形式】
True或者False
【样例输入】
[1,2,3,4,5,6,6]
12
【样例输出】
True
【样例说明】
如果上面的输入列表中只有一个6,则不能构成和12. 因为每个元素只能使用一次。
nums = eval(input())
sum = eval(input())
for x in range(len(nums)):
n = sum-nums[x]
if n in nums:
if n!=nums[x]:
print(True)
break
else:
if nums.count(n)>=2:
print(True)
break
else:
print(False)
6. 题库:计算列表的度
【问题描述】
对于一个包含自然数的列表nums,计算他的度。列表的度定义为列表里任一元素出现的频率的最大值。
【输入形式】
从键盘输入一个列表,包含方括号,逗号分隔
【输出形式】
整数
【样例输入】
[1,2,3,3,4,5,4,3,3]
【样例输出】
4
【样例说明】
列的所有元素的频率中,元素3的频率最大为4.
def calDegrees(y):
z=0;
for x in y:
if y.count(x)>z:
z=y.count(x);
return z;
nums = eval(input())
d=calDegrees(nums) #调用自定义函数
print(d)
1. 题库:计算整数列表平均值(根据结果判断是否输出小数部分)
【问题描述】
输入一个整数列表,计算所有元素的平均值,如果结果中小数为0,请只输出整数部分,如果结果中的小数部分不为0,则输出结果保留两位小数。
【输入形式】
从键盘输入列表,包含方括号,列表元素用逗号分隔。
【输出形式】
纯整数,或者带两位小数的浮点数
【样例输入1】
[1,2,3,4,5]
【样例输出1】
3
【样例输入2】
[2,2,3,7,5,1]
【样例输出2】
3.33
【样例说明】
[1,2,3,4,5]列表平均值为3,计算出来结果小数部分为0,只输出整数3;[2,2,3,7,5]列表平均值为浮点数,所以输出结果保留两位小数为3.33
import math
from statistics import mean
def pr(y):
x = mean(y)
z=math.floor(x);
if(x==z):
print(z)
else:
print("%.2f" %x)
sums=eval(input());
pr(sums);
2. 题库:生成指定长度的等差数列
【问题描述】
输入三个正整数n,m,l,生成指定长度的等差数列,存入列表中。其中n表示起始值,m表示列表元素的数量,l表示公差。
【输入形式】
在同一行输入n,m,l三个值,中间用英文逗号分隔。
【输出形式】
打印输出列表
【样例输入】
2,3,2
【样例输出】
[2, 4, 6]
【样例说明】
第一个数字表示数列的起始值,第二个数字表示数据的个数,第三个数字表示差。
def shulie(n,m,l):
sums = list(range(n,(n+m*l),l));
print(sums);
x,y,z=eval(input());
shulie(x,y,z);
3. 题库: 把列表中数值为0的元素移动到列表的尾端,其他元素相对顺序不变。
【问题描述】
读入一个整数列表,把数值为0的元素移动到列表尾部,其他元素的相对顺序不变。输出调整后的列表。
【输入形式】
按照列表的形式输入,包括方块号,逗号分隔。
【输出形式】
直接使用print打印
【样例输入】
[1,0,2,0,3,0,4]
【样例输出】
[1, 2, 3, 4, 0, 0, 0]
def ling(y):
z=[0];
x=y.count(0);
while 0 in y:
y.remove(0);
for i in range(x):
y=y+z;
print(y);
sums=eval(input());
ling(sums);
4. 题库:在列表中找出只出现一次的元素,并排序输出
【问题描述】
输入一个自然数列表,找出只出现一次的元素,并升序输出。如果没有只出现一次的元素,则输出False。
【输入形式】
输入包含自然数的列表,包括方括号,逗号分隔
【输出形式】
排序后的数字,每个数字之间用英文逗号分隔。或者False。
【样例输入1】
[1,2,3,5,2,3,4]
【样例输出1】
1,4,5
【样例输入2】
[9,9,9,12,12]
【样例输出2】
False
【样例说明】
[9,9,9,12,12]列表中,9出现3次,12出现2次,没有出现一次的元素,则输出False。
def one(y):
x=[];
for i in y:
if y.count(i)==1:
x.append(i);
x.sort(reverse=False);
if x==[]:
print(False);
else:
print(*x,sep=',');
sums=eval(input());
one(sums);
5. 题库:从一个列表中取出第n个元素,并重复m次,放到末尾,然后输出列表
【问题描述】
输入一个整数列表和整数n(n可以是负数)和正整数m,从该列表中选择第n个元素,把该元素重复m次,然后放到列表的尾端,最后输出列表。如果输入的n值不在列表下标范围之内,则输出"error"
【输入形式】
输入时,第一行输入列表的元素,用英文逗号分隔。
第二行输入两个数字n和m,用英文逗号分隔。
【输出形式】
直接使用print输出列表
【样例输入1】
1,2,3,4,5
2,3
【样例输出1】
[1, 2, 3, 4, 5, 3, 3, 3]
【样例输入2】
1,2,3,4,5
5,3
【样例输出2】
error
【样例说明】
样例2中,输入的n值为5,但是列表的元素一共才5个,超出下标范围,输出error
import math
def mowei(y,n,m):
if n!=math.floor(n):
print('error');
else:
if n>=(-len(y)) and n<len(y):
x=y[n];
for i in range(m):
y.append(x);
print(y);
else:
print('error');
sums=list(eval(input()));
n,m=eval(input());
mowei(sums,n,m);
6. 题库:交换列表中两个元素的值,并输出列表
【问题描述】
输入一个由字符串构成的列表和两个整数n和m(n和m在输入列表的下标范围以内),交换其中两个元素的值,打印输出交换后的列表。
【输入形式】
第一行输入由空格分隔的多个字符串
第二行输入两个整数n和m,表示元素的位置,两个数字之间用空格区分。
【输出形式】
直接使用print函数输出列表
【样例输入1】
hello world python is great
2 3
【样例输出1】
[‘hello’, ‘world’, ‘is’, ‘python’, ‘great’]
【样例输入2】
hello world python is great
-2 3
【样例输出2】
[‘hello’, ‘world’, ‘python’, ‘is’, ‘great’]
【样例说明】
多个字符串由空格区分,程序读入后,转变成列表,然后交换指定位置的元素,最后使用print直接输出列表。
def Change(y,m,n):
y[m],y[n]=y[n],y[m];
print(y);
sums=input();
m,n = list(map(int, input().strip().split()))
y=sums.split();
Change(y,m,n);
7. 题库:计算整数列表的平均值
【问题描述】
输入一个整数列表,计算所有元素的平均值。结果保留两位小数。输入数据用逗号分隔
【输入形式】
从键盘输入一个整数列表,包括方括号,元素逗号分隔
【输出形式】
输出所有元素的平均值,结果保留两位小数
【样例输入】
[1,2,3,4,5]
【样例输出】
3.00
【样例说明】
用列表的形式输入一串整数,然后计算平均值,输出3.00,结果保留了两位小数。
def pingjun(y):
print("%.2f" %(sum(y)/len(y)));
sums=eval(input());
pingjun(sums);
8. 题库:找出自然数列表中的素数,并放入另外一个列表,然后输出找出的素数
【问题描述】
读入一个自然数构成的列表,找出其中的每一个素数,然后放入另外一个列表,并输出这个列表。
【输入形式】
按照列表的形式输入,包括方括号,元素之间用逗号分隔。
【输出形式】
直接用print输出列表
【样例输入】
[2,3,5,7,9,11,23]
【样例输出】
[2, 3, 5, 7, 11, 23]
【样例说明】
所有的输入数据在一行。所有的输出在一行。
def sushu(y):
x=[];
for i in y:
if i>=2:
for j in range(2,i,1):
if i%j==0:
break;
else:
x.append(i);
print(x);
sums=eval(input());
sushu(sums);