type命令
检查值或变量的数据类型
>>> type(5)
<class 'int'>
>>> type('str')
<class 'str'>
>>> type(print)
<class 'bulitin_function_or_method'>
序列(按顺序排列)
内置序列类型
字符串、元组、列表
序列特征
第一个正索引为0,指向左端。
第一个负索引为-1,指向右端。
可用切片法复制子序列。eq,
seq1=seq[begin:end] #复制seq从索引begin指向的元素到索引end-1的元素。
可用'+'和'*'进行拼接。(拼接时序列类型需相同。)
可使用len()计算长度。(含空格,不含结束符)
表达式 x in s 检查序列s是否包含元素x。返回boolean值。
元组(不可变)
元组用圆括号括起,其中元素用逗号隔开。
元组可以包含任何python值(包括元组。)
>>> i=(1,'one',('hehe',),[1,2,3])
>>> print(i)
(1, 'one', ('hehe',), [1, 2, 3])
>>> len(i)
4
>>> i[-1]
[1, 2, 3]
#空元组用()表示。
#含单元素的元组采用不同的表示法(x,),元素后逗号不可省略。若省略了元素后的逗号,就只是将表达式括起来而已。
>>> i=(1)
>>> type(i)
<class 'int'>
>>> i=(1,)
>>> type(i)
<class 'tuple'>
元组不可变
与字符串、整数、浮点数相同,元组本身不可变。但指向元组的变量可变。
若要修改元组,则必须创建一个体现更改的新元组。
>>> i[0]=0
Traceback (most recent call last):
File "", line 1, in
TypeError: 'tuple' object does not support item assignment
元组函数
x in tup #检查元素x,返回boolean
len(tup) #元组元素个数
tup.count(x) #x在元组中出现个数
tup.index(x) #元组中第一个出现的x的索引,若无x,则报错ValueError异常。
元组可以用“+”和“*”拼接(对变量使用)
列表(使用频率远高于元组)(可变)
用方括号括起(类似C++里的数组)
可用len()获取元素个数。
可用“+”和“*”拼接。
可用索引和切片访问和复制列表。
与元组不同,单元素列表可不写逗号。
列表亦可包含所有类型值。
>>> list=[1,'hehe',5.0,(1,2,3),[1,2]]
>>> print(list)
[1, 'hehe', 5.0, (1, 2, 3), [1, 2]]
列表是可变的
列表元素指向(而非包含)相应的值,可通过索引改变元素值。#被替换的值自动删除。
>>> list[0]=0
>>> print(list)
[0, 'hehe', 5.0, (1, 2, 3), [1, 2]]
~自引用列表
让列表一个元素指向列表自身,创建一个自引用的数据结构。
>>> list[0]=list
>>> print(list)
[[...], 'hehe', 5.0, (1, 2, 3), [1, 2]]
列表函数
s.append(x) #在列表末尾添加元素x
s.count(x) #x出现次数
s.extend(lst) #将lst所有元素都添加到列表s末尾
s.index(x) #返回元素x的索引
s.insert(i,x) #将元素x插入到索引i指定的元素前面,结果是s[i] ==x
s.pop(x) #删除并返回s中索引为i的元素,无参时删除并返回最后一个元素
s.remove(x) #删除s中第一个x元素
s.reverse() #反转s中元素的排列顺序,不会生成拷贝
s.sort() #将s的元素按升序排列(同类型);元素为元组或列表时,比较第一项,第一项相同比第二项...
列表解析(实例说明)
通式:[元素表达式 通过for循环获取元素]
>>> list=[n*n for n in range(1,10)]
>>> list
[1, 4, 9, 16, 25, 36, 49, 64, 81]
>>> list=[a for a in 'hehe']
>>> list
['h', 'e', 'h', 'e']
~使用列表解析进行筛选
#筛选正数
>>> num=[-1,-2,-3,6,2,5]
>>> result=[n for n in num if n>0]
>>> result
[6, 2, 5]
#去除元音
#eatvowels.py
def eatvowels(s):
return ''.join([c for c in s if c.lower() not in 'aeiou'])
string='Hello world'
print(eatvowels(string))
——> Hll wrld
#join()函数(str.join(seqence)):返回字符串,形参为序列,用str连接序列元素。
字典(关联数组,映射,散列表)(无序)(值可变)
大括号表示{},储存方式:键 ——> 值,可用键访问和修改值(此时用中括号)。
>>> birth={'xyqc':625,'wwx':1026,'lwt':1031}
>>> birth
{'xyqc': 625, 'wwx': 1026, 'lwt': 1031}
>>> birth['xyqc']
625
键
在一个字典中,任何两个键值对的键不能相同。
键是不可变的。字典键不能是列表或字典。
字典函数
d.items() #返回一个由d的键-值对组成的视图(view)
d.keys() #返回一个d的键组成的视图
d.values() #返回一个d的值组成的视图
d.get(key) #返回与key相关联的值
d.pop(key) #删除键key并返回与之关联的的值
d.popitem() #返回字典d的某个键-值对
d.clear() #删除字典d的所有元素
d.copy() #复制字典d
d.fromkeys(s,t) #创建一个新字典,其中的键来自s,值来自t
d.setdefaluts(key,v) #如果键key包含在字典d中,则返回其值;否则,返回v并将(key,v)添加到字典d中
d.update(e) #将e的键-值对添加到字典d中;e可能是字典,也可能是键-值对序列
集合
一系列不重复的元素。
类似于字典,只包含键,而没有相关联的值,且顺序不确定。
分类:可变集合和不可变集合。
常见用途:删除序列中重复元素。
list=[1,1,1,3,3,3,5,5,5]
s=set(list)
print(s)
——> {1,3,5}
网友评论