Python常用数据结构和包

Python字母的ASCII码范围

  • 小写字母:[97, 122]
  • 大写字母:[65, 90]

类和对象的概念

定义:类是一类事物的概括。
定义:对象是一类事物中的一个具体的实例。所谓实例就是指实际的例子。

举例:人是一个类,小明是人这个类的一个对象(也叫实例)。

# 注意下列例子中,右侧都是类的构造函数,由类名()构成,返回的是这个类的一个对象,赋值给左侧的变量。
# 要注意,变量名不可于类名同名,至少要有大小写的差别,不然编译会出错,因为编译器无法区分你写的是对象还是类。
List = list()
Array = np.array()
Set = set()
Dict = dict()

list

注意:list是有序列表(即列表中的元素是有先后顺序的,先append的在前面,后append的在后面。),但元素可以重复。

# list的两种初始化方式
List = []
# 或
List = list()

list[start: end:step]

start:起始位置,不写默认为0

end:结束位置,不写默认为len(list)

step:步长,不写默认为1

例如

List[::] = List[:]
List[::2] 表示从第0位开始,间隔取值
List[1::2] 表示从第1位开始,间隔取值

list的特殊初始化方式

# 对OldList中的元素进行筛选,通过筛选的元素一起构成一个新的list赋值给NewList
NewList = [新item语句 for item in OldList and 条件语句]
# 这里的新item语句可能是item也可能是与item有关的判断语句的结果,条件语句是从OldList中挑选出item时附加的条件
# 举例
NewList = [item for item in OldList and item > 0]
NewList = [item[i] > item[i+1] for i in range(len(OldList)-1) and i % 2 == 0]

list的切段

List[i:j] # 表示取List中[i,j)这个索引区间的所有元素,返回的是一个新的list对象。
List[i:] # 表示取List中[i,len(List))这个索引区间的所有元素,返回的是一个新的list对象。
List[:j] # 表示取List中[0,j)这个索引区间的所有元素,返回的是一个新的list对象。
List[-1] # 表示取List的倒数第一个元素,也就是最后一个元素。
List[:-1] # 表示取List中[0,-1)也就是[0,len(List)-1)这个索引区间的所有元素,返回的是一个新的list对象。

list的增加元素和删除元素

List.append(a) # 向List这个list对象里增加a这个元素
List.remove(a) # 从List中删除第一个值等于a的元素
List.pop(i) # 从List中删除索引为i的元素,如果直接写List.pop()表示删除List的最后一位元素。
del List[i] # 从List中删除索引为i的元素
del List[i:j] # 从List中删除[i,j)这个索引区间的元素
# 清空list
List.clear()
del List
# 从list中随机删除一个值
List.popitem()

list的常用判断

all方法:如果一个list中所有的元素都不为null也不为0也不为False,则all方法返回True,否则返回False。就是说all方法用于判断一个list的元素是否都是非null,非0且非False的。

if all(List):
	....
else:
	.....

any方法:如果一个list中的元素不都为null,0,或False,则any方法返回True,否则返回False。就是说,any方法用于检查一个list中是否至少存在一个元素是非null,非0且非False的。

if any(List):
	....
else:
	.....

dict

字典用途广泛,一般可以用来做分类统计个数。
例如,有一个数据序列,每一个元素是一个二元组,分别存有性别和姓名。现在我们要进行男女人数的统计。那么就先初始化一个dict对象D,这个字典中有两个key,分别是‘男’和‘女’,且初始的value都是0。然后,对这个数据序列进行遍历如果性别为‘男’则D[‘男’] = D[‘男’] + 1,否则 D[‘女’] = D[‘女’] + 1。

dict的初始化

Dict = dict()
Dict = {}

dict添加和删除元素

# 在Dict中键为key_now的地方放入value_now这个值
Dict[key_now] = value_now
# 从Dict中删除指定元素
Dict.pop(key_now) # 从Dict中删除键为key_now的元素,即key_now:value_now这对键值对被删除。
del Dict[key_now] # 从Dict中删除键为key_now的元素,即key_now:value_now这对键值对被删除。
# 清空dict
Dict.clear()
del Dict
# 从Dict中随机删除一个键值对
Dict.popitem()

dict的3种遍历方式

第一种:遍历键

for key in Dict.keys():
	value = Dict[key]

第二种:遍历值

for value in Dict.values():
	a = value

第三种:遍历键值对(item)

for item in Dict.items():
	key = item.key
	value = item.value
或
for key, value in Dict.items():
	key_now, value_now = key, value

for循环的两种方式

第一种方式:可以读取也可以赋值。

for i in range(len(List)):
	a = List[i] # List中按照下标依次取出
	List[i] = 0 # List中按照下标依次赋值

第二种方式:只允许读取,不允许赋值。
注意:这种循环方式不允许对item进行赋值

for item in List:
	a = item # List中按照下标依次取出
	# 注意这种循环方式不允许对item进行赋值

while循环

注意:python只有while循环没有do-while循环

while 判断语句:
	循环体
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章