序列
序列的分类
- 元组(Tuple)–()
一维的、定长的、不可变的数据序列
- 列表(List)–[]
可变的序列- 字符串(String)–{ }
字符序列,值不可改变
序列的索引
- 元组、列表、字符串采用相同的索引方式。
- 元素引用方式如下:
变量名[索引]
(注意:可正序或倒序查找元素,正序下标从0开始,倒叙:从最后一个元素往前查找 且最后一个元素下标为-1)
元组(Tuple)和列表(List)的相关函数及方法
元组(Tuple)和列表(List)的相关函数
a.index(b)--对象b在对象a中出现的索引---b可以是位置下标或元素值,最终返回的是对应的行索引------实现方法可看第三次课Series数据删除
sorted(a)-- 对列表的元素进行升序排序
len(a)------元素的个数
sum(a)------元素求和
min(a)------返回元素的最小值
max(a)------返回元素的最大值
List相关方法
a.append(1)--将元素1或列表1添加到列表末尾
a.count(1)---统计a中元素1出现的次数
a.extend([1,2])---将列表[1,2]添加到a的末尾
a.index(1)----返回a中元素1所在的索引位置---最终返回的是对应的索引------
a.insert(2,1)---将1插入到a的索引为2的位置上
a.pop(1)-------移除a中索引位置为1的元素
例子如下:
a=['qwe', 'asd', 'zxc', 25]
a
>>>['qwe', 'asd', 'zxc', 25]
a.index(25)
>>>3
a.index('qwe')
>>>0
list(range(a,b))------创建列表,元素为从 a~b-1
a=list(range(0,6))
a
>>>
[0, 1, 2, 3, 4, 5]
元组(Tuple)和列表(List)的操作
s1+s2 ------用来实现两个元组或者列表的合并
extend()---只能用于列表,元组无extend()函数
s*n或n*s
s[i] s[i:j] s[i:j:k]
len(s) min(s) max(s)
x in s x not in s
例子如下:
s1=('a','b','c')
s2=(1,2,'nihao')
b=s1+s2
c=s1*2
d='a' in s1
print(b,c,d,)
>>>('a', 'b', 'c', 1, 2, 'nihao') ('a', 'b', 'c', 'a', 'b', 'c') True
S1=['a','b','c']
S2=[1,2,'nihao']
B=S1+S2
C=S1*2
D='a' not in S1
print(B,C,D)
>>>['a', 'b', 'c', 1, 2, 'nihao'] ['a', 'b', 'c', 'a', 'b', 'c'] False
S1.extend(S2)
S1
>>>['a', 'b', 'c', 1, 2, 'nihao', 1, 2, 'nihao', 1, 2, 'nihao']
字典即哈希映射(Hash map)–{键:键值}
键—定义时必须是不可变对象----整数、浮点数、字符串、元组 通过“键”可查找到与之关联的“值”
a0={'q':'eiyo',3:'num', 'w':[1,2,3], 'e':456}
a0['add']=0 #若a0中已经存在add这个键,则会修改该键的键值为0,若不存在则会为a0添加新键值
print(a0['q'], a0[3], a0['w'], a0['e'], a0)
>>>eiyo num [1, 2, 3] 456 {'q': 'eiyo', 3: 'num', 'w': [1, 2, 3], 'e': 456, 'add': 0}
注释
单行注释用#
多行注释为
“”"
此为多行注释
“”"
键盘输入,屏幕输出—举例说明
s= input("姓名和年龄:")#输入时用逗号隔开
>>>姓名和年龄:李白,15
name,age=s.split(",")#通过识别逗号,将逗号前后的内容分别赋给name和age
- 输出方式1:
print(name,age)#输出name和age
>>> 李白 15
- 输出方式2:
print("{},{}".format(name,age))
>>> 李白,15
- 输出方式3:
print("姓名:{}, 年龄:{}".format(name,age))
>>> 姓名:李白, 年龄:15
控制流分支
- 方式1:
if 条件: 语句 1 else: 语句 2
- 方式2:
if 条件1: 语句1 elif 条件2: 语句2 else: 语句3
循环语句
- 方式1:
for<循环体控制变量> in 序列: 循环体语句
列表生成函数range(start,end,step)----从start开始到end-1结束,步长为step
方式2:
while<布尔型语句>: 循环体语句
即得到的语句结果只有True和False两种
自定义函数—举例说明
函数用def 关键字申明,用return关键字返回值,可返回多个值
def qwe(x,y):
print(x*y)
qwe('nihao',2)
>>> nihaonihao
def datasum(x,y):
sum=x*y
return sum
a1=datasum(2,3)
a1
>>> 6
异常处理—举例说明
x='111'
#try语句中放入可能会出错的语句
try:
print(float(x))#此为可能会出错的语句
#若语句有错误则执行except中的语句,反之则执行else中的语句
except:
print(x)
else:
print("语句未发生错误")
finally:
print("不管语句是否错误,程序执行结束后总会执行finally语句")
>>> 111.0
语句未发生错误
不管语句是否错误,程序执行结束后总会执行finally语句
#此为try内的语句错误的情况
y=['asd']
try:
print(int(y))
except:
print(y*2)
else:
print("语句未发生错误")
finally:
print("不管语句是否错误,程序执行结束后总会执行finally语句")
>>> ['asd', 'asd']
不管语句是否错误,程序执行结束后总会执行finally语句
补充
grouped= data.groupby([ 'Province']).size()
grouped
>>>
Province
AnHui 3
BeiJing 1
ChongQing 3
FuJian 1
GanSu 3
GuangDong 2
GuangXi 3
GuiZhou 3
HaiNan 1
HeBei 1
HeiLongJiang 2
HuBei 1
JiLin 1
JiangSu 1
JiangXi 3
LiaoNing 3
ShanDong 4
ShanXi 2
ShangHai 3
SiChuan 2
TianJin 1
XiZang 1
XinJiang 2
YunNan 3
dtype: int64
只得到索引:
grouped.index
>>>
Index(['AnHui', 'BeiJing', 'ChongQing', 'FuJian', 'GanSu', 'GuangDong',
'GuangXi', 'GuiZhou', 'HaiNan', 'HeBei', 'HeiLongJiang', 'HuBei',
'JiLin', 'JiangSu', 'JiangXi', 'LiaoNing', 'ShanDong', 'ShanXi',
'ShangHai', 'SiChuan', 'TianJin', 'XiZang', 'XinJiang', 'YunNan'],
dtype='object', name='Province')
只得到值:
grouped.values
>>>
array([3, 1, 3, 1, 3, 2, 3, 3, 1, 1, 2, 1, 1, 1, 3, 3, 4, 2, 3, 2, 1, 1,2, 3], dtype=int64)