# coding=gbk
import numpy as np
inputStr = input("请输入多个整数,以空格分隔:")
# 使用列表推导式将输入的内容以空格分隔,如果有小数,则通过int函数变为整数
input_lists = [int(num) for num in inputStr.split(" ")]
# 通过sort方法,并使用参数reverse=True,来将列表的数据以降序排列
input_lists.sort(reverse=True)
# 由于通过",".join()连接的列表不能有整数元素,所以通过列表推导式将列表每个元素通过str转为字符串后,再联接为以逗号分隔的字符串
print(",".join([str(num) for num in input_lists]))
# 使用numpy的median函数来得到中位数
print(np.median(input_lists))
import random;
random.randint(0,100)
for i in range(N)];
lst.sort();
l=len(lst);
print("sorted:",lst);
print("median:",
序列 (sequence)是Python最基本的一种数据结构.
序列中的每个元素都有编号,即其位置或索引,其中第一个元素的索引为0,第二个元素的索引为1,依此类推.Python的序列索引支持负数,-1表示序列的最后一个元素,这是Python不同其他很多种语言不同的地方.
Python内置了多种序列,列表、元组、字符串是其中最常用的三种,本文为你描述各种序列的通用操作.
索引从0开始,索引号为0的元素为1,greeting的索引号为0的元素为'H'.
你可能注意到'Hello'和'H'都用单引号包围,这是Python不同于其他语言的另一个地方.Python并没有专门用于表示字符的数据类型,所以呢一个字符就是一个只包含一个元素的字符串.
Python的序列索引支持负数,-1表示倒数第一个元素.
切片 (slicing)操作用于访问序列特定 范围 内的元素.在一对方括号内使用两个索引,并用冒号隔开:
换言之,你提供两个索引来指定切片的边界,其中第一个索引指定的元素包含在切片内,但第二个索引指定的元素不包含在切片内.
保留冒号,省略第一个索引,表示从序列起始位置开始切片;省略第二个索引,表示切片到序列末尾,包含最后一个元素:
这个操作的效果是:在指定的区间内间隔取元素,语法格式为:
例如:
步长为正数时,它从起点移到终点,而步长为负数时,它从终点移到起点.
可以使用加法运算(+运算符)拼接两个序列:
从错误消息可知,不能拼接列表和字符串,虽然它们都是序列.一般而言,不能拼接不同类型的序列.
将序列与数x 相乘时,将重复这个序列x 次来创建一个新序列:
初始化一个长度为10的空列表:
成员资格检查判定一个元素是否存在于集合中,如存在返回True,否则返回False,实际上是一个布尔表达式.
语法:
内置函数 len 返回序列包含的元素个数,而 min 和 max 分别返回序列中最小和最大的元素.
Python通用的序列操作有:索引、切片、乘法、成员资格检查、长度、最小值和最大值.
def?median(lst):
if?not?lst:
return?
lst=sorted(lst)
else:
numpy计算平均数 标准差 相关系数等基本知识
NumPy 是python 语言的一个第三方库,其支持大量高维度数组与矩阵运算.此外,NumPy 也针对数组运算提供大量的数学函数.
#导入Numpy库,并命名为np
#创建一维数组
# NumPy可以很方便地创建连续数组,比如我使用arange或linspace函数进行创建:
#通过NumPy可以自由地创建等差数组,同时也可以进行加、减、乘、除、求n次方和取余数.
求和:np.sum(a)
求取平均值:np.mean(a)
求取中位数:np.median(a)
求取加权平均数:np.average(a)
求取方差:var() np.var(a)
求取最小值:np.amin(a)
求取最大值:np.amax(a)
当使用依次类快速排序算法后,分割元素的下标为pos:
以上默认此数组序列长度为奇数,如果为偶数就是调用上述方法两次查找中间的两个数,再求平均.
code:
def partition(arr, low, high):
? key = arr[low]
? while low high:
? ? ? while low high and arr[high] key:
? ? ? ? ? high -= 1
? ? ? arr[low] = arr[high]
? ? ? while low high and arr[low] key:
? ? ? ? ? low += 1
? ? ? arr[high] = arr[low]
? arr[high] = arr[low]
? arr[low] = key
? pos = low
? return pos
def getMid(arr):
? low = 0
? high = len(arr) - 1
? mid = low + (high - low) 1
? ? ? # 以arr[low] 为基准把数组分成两部分
? ? ? pos = partition(arr, low, high)
? ? ? if pos == mid:? # 找到中位数
? ? ? ? ? break
? ? ? elif pos mid:? # 继续在右半部分查找
? ? ? ? ? high = pos - 1
? ? ? else:? # 继续在左半部分查找
? ? ? ? ? low = pos + 1
? # 如果数组长度为奇数,中位数为中间的元素,否则就是中间两个数的平均值
if __name__ == "__main__":
? print(getMid(arr))