List列表、Tuple元组的练习
下面写一些使用 List列表 和 Tuple元组 的常用例子,编辑器使用 IDLE
判断 List 列表对象中有无重复元素
遍历List 列表,分别判断每个元素出现的次数,如果大于1,则返回True,如果没有重复的元素,返回 False 。
# 定义函数
def is_repeat(lst):
for x in lst:
if lst.count(x) > 1:
return True
return False
# 调用函数
a = [1,-2,3,6,11,-2]
print(is_repeat(a))
输出结果:
True
列表反转
使用切片,一行代码实现列表反转。
# 定义函数
def reverse(lst):
return lst[::-1]
# 调用函数
a = [1,-2,3,6,11,-2]
print(reverse(a))
输出结果:
[-2, 11, 6, 3, -2, 1]
找出列表中所有重复的元素
遍历列表,如果出现次数大于 1,且不在返回列表中,则添加到新的列表。
# 定义函数
def find_repeat_ele(lst):
ret = []
for x in lst:
# 次数大于 1,并且不在新的 列表中
if lst.count(x) > 1 and x not in ret:
ret.append(x)
return ret
# 调用函数
a = [1,3,12,3,4,3,-1,4]
print(find_repeat_ele(a))
输出结果:
[3, 4]
斐波那契数列
第一、二个元素都为 1,第三个元素等于前两个元素和,依次类推。
方法一
# 定义函数
def fibonacci(n):
if n <= 1:
return [1]
a = [1,1]
while len(a) < n:
a.append(a[len(a) - 1] + a[len(a) - 2])
return a
# 调用函数
a = fibonacci(5)
print(a)
输出结果:
[1, 1, 2, 3, 5]
方法二
# 定义函数
def fibonacci(n):
a,b = 1,1
for _ in range(n):
# 遇到 yield 返回,下次再进入函数体时,从 yield 的下一句开始执行
yield a
a,b = b,a + b
# 调用函数
a = list(fibonacci(5))
print(a)
输出结果:
[1, 1, 2, 3, 5]
出镜最多
求出现频次最多的元素。
# 定义函数
def much(lst):
if not lst:
return None
return max(lst,key=lambda v: lst.count(v))
# 调用函数
a = [1,2,3,4,1,1,1,3,3]
r = much(a)
print('出现次数最多的元素为:',r)
输出结果:
出现次数最多的元素为: 1
如果出镜最多的元素有多个时,按照以上方法,只会返回一个,所以对上面的代码进行改进。
改进代码:
# 定义函数
def much(lst):
if not lst:
return None
# 取出list中出现次数最多的元素
max_freq_ele = max(lst,key=lambda v: lst.count(v))
# 记录这个元素出现的次数
max_freq = lst.count(max_freq_ele)
ret = []
for i in lst:
if i not in ret and lst.count(i) == max_freq:
ret.append(i)
return ret
# 调用函数
a = [1,3,3,4,1,1,1,3,3]
r = much(a)
print('出现次数最多的元素为:',r)
输出结果:
出现次数最多的元素为: [1, 3]
更长列表
带有一个 * 的参数为可变置参数,意味着能传入任意多个位置参数。
# 定义函数
def max_len_list(*lists):
# v 代表一个 list,其长度作为大小比较的依据
return max(*lists, key=lambda v: len(v))
# 调用函数
a = max_len_list([1,2,3],[4,5,6,7],[8])
print(a)
输出结果:
[4, 5, 6, 7]
求列表头
返回列表的第一个元素,如果列表为空,则返回None 。
# 定义函数
def list_head(list):
return list[0] if len(list) > 0 else None
# 调用函数
a = list_head([])
b = list_head([3,1,5])
print(a)
print(b)
输出结果:
None
3
求列表尾
求列表的最后一个元素,如果列表为空,则返回None 。
# 定义函数
def list_end(list):
return list[-1] if len(list) > 0 else None
# 调用函数
a = list_end([])
b = list_end([3,1,5])
print(a)
print(b)
输出结果:
None
5
打印乘法表
# 定义函数
def mult_table():
for i in range(1,10):
for j in range(1,i+1):
print(str(j) + str("*") + str(i) + "=" + str(i*j), end="\t")
print()
# 调用函数
mult_table()
输出结果:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
样本抽样
假设有 100 个样本,然后从中随机抽取 10 个。
# 从 random 模块导入 randint 和 sample函数
from random import randint,sample
# randint 生成随机整数
lst = [randint(0,50) for _ in range(100)]
print(lst[:5])
# sample 从 lst 中抽样 10 个元素
lst_sample = sample(lst,10)
print(lst_sample)
输出结果:
[4, 25, 18, 43, 48]
[36, 28, 25, 13, 11, 26, 35, 17, 19, 2]
生成满足均匀分布的点坐标
random模块中的uniform(a,b) 可以在[a,b)之间生成 一个随机数。
from random import uniform
x, y = [i for i in range(100)], [round(uniform(0, 10), 2) for _ in range(100)]
print(y)
输出结果:
[9.84, 2.68, 1.88, 1.67, 5.88, 6.55, 4.85, 4.26, 9.27, 5.97, 0.89, 8.23, 9.81, 6.32, 6.45, 1.73, 7.32, 8.49, 0.05, 9.87, 7.15, 9.15, 7.8, 0.19, 4.04, 7.32, 7.73, 8.68, 7.37, 7.51, 1.38, 0.35, 8.04, 7.78, 6.34, 6.13, 6.6, 5.57, 3.7, 8.52, 0.77, 7.09, 8.05, 9.02, 3.69, 9.0, 0.18, 9.83, 9.97, 0.6, 5.32, 1.04, 4.41, 5.18, 6.52, 4.95, 3.62, 3.24, 3.98, 5.02, 5.63, 1.84, 4.51, 5.54, 3.59, 3.68, 5.18, 1.41, 1.01, 5.53, 4.86, 1.8, 5.56, 2.79, 1.86, 8.55, 0.67, 9.73, 4.16, 7.88, 0.81, 6.95, 5.36, 0.26, 6.59, 5.84, 3.35, 2.01, 2.7, 1.32, 1.43, 5.86, 8.95, 9.33, 4.88, 0.09, 7.15, 8.74, 2.54, 2.63]
使用 PyEcharts 绘图
from pyecharts.charts import Scatter
import pyecharts.options as opts
from random import uniform
# 定义函数
def draw_uniform_points():
x, y = [i for i in range(100)], [
round(uniform(0, 10), 2) for _ in range(100)]
print(y)
c = (Scatter().add_xaxis(x).add_yaxis('y',y))
c.render()
# 调用函数
draw_uniform_points()
如果提示:No module named ‘pyecharts’,请使用命令 pip install pyecharts
进行安装,安装完,执行程序。就会在 .py 文件所在目录生成 HTML 文件,打开就能看到 echarts 画的图了。
根据图示可得,变量 y 满足 均匀分布。
还没有评论,来说两句吧...