[Python] Basic knowledge
2020-04-02 本文已影响0人
紫藤lvy
1: 推导式列表
>>> sqlist=[x*x for x in range(1,11) if x%2 != 0]
>>> sqlist
[1, 9, 25, 49, 81]
>>>[ch.upper() for ch in 'comprehension' if ch not in 'aeiou']
['C', 'M', 'P', 'R', 'H', 'N', 'S', 'N']
2: map 函数
map() 会根据提供的函数对指定序列做映射。
map(function, iterable, ...)
将输入的字符串转换为Int 类型
>>> l = list(map(int,input().split()))
print(type(l[0]))
>>> <class 'int'>
>>>def square(x) : # 计算平方数
... return x ** 2
...
>>> map(square, [1,2,3,4,5]) # 计算列表各个元素的平方
[1, 4, 9, 16, 25]
3 遍历列表的方法
lst = ['a','b','c','d']
for _ in lst:
print(lst.index(_)+1) //序号
print(_) // 值
for _ in range(len(lst)):
print(_+1) //序号
print(lst[_]) //值
for i,v in enumerate(lst):
print(i+1) //序号
print(v) //值
4 range 函数
通常运用在循环 场景中
range(start, stop[, step])
>>> range(1,5) #代表从1到5(不包含5)
[1, 2, 3, 4]
>>> range(1,5,2) #代表从1到5,间隔2(不包含5)
[1, 3]
>>> range(5) #代表从0到5(不包含5)
[0, 1, 2, 3, 4]
5 enumerate 函数
enumerate(sequence, [start=0])
参数
sequence -- 一个序列、迭代器或其他支持迭代对象。
start -- 下标起始位置。--下表值可以改变
返回值
返回 enumerate(枚举) 对象。
统计打开文件的行数:
>>>count = 0
>>>for index, line in enumerate(open(filepath,'r')):
count += 1
6 zip 函数
定义:zip([iterable, ...])
zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)。若传入参数的长度不等,则返回
list的长度和参数中长度最短的对象相同。利用*号操作符,可以将list unzip(解压)
example:
>>>a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b) # 打包为元组的列表
[(1, 4), (2, 5), (3, 6)]
>>> zip(a,c) # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]
>>> zip(*zipped) # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式
[(1, 2, 3), (4, 5, 6)]
nums = ['flower','flow','flight']
for i in zip(*nums):
print(i)
输出结果:
('f', 'f', 'f')
('l', 'l', 'l')
('o', 'o', 'i')
('w', 'w', 'g')
7 常用数据类型转换
列表转字符串
>>> juice=['orange','a','b']
>>> ''.join(juice)
'orangeab'
>>> juice=['orange','a','b']
>>> content='%s'*len(juice) % tuple(juice)
>>> print content
orangeab
>>>
8 Python os.walk() 方法
os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。
语法
walk()方法语法格式如下:
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
参数
top -- 是你所要遍历的目录的地址, 返回的是一个三元组(root,dirs,files)。
root 所指的是当前正在遍历的这个文件夹的本身的地址
dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)
topdown --可选,为 True,则优先遍历 top 目录,否则优先遍历 top 的子目录(默认为开启)。如果 topdown 参数为 True,walk 会遍历top文件夹,与top 文件夹中每一个子目录。
onerror -- 可选,需要一个 callable 对象,当 walk 需要异常时,会调用。
followlinks -- 可选,如果为 True,则会遍历目录下的快捷方式(linux 下是软连接 symbolic link )实际所指的目录(默认关闭),如果为 False,则优先遍历 top 的子目录。
import os
for root, dirs, files in os.walk(".", topdown=False):
for name in files:
print(os.path.join(root, name))
for name in dirs:
print(os.path.join(root, name))
runfile('C:/Users/ehonlix/Desktop/a.py', wdir='C:/Users/ehonlix/Desktop')
C:\python
['__pycache__']
C:\python\DAY01.py
C:\python\DAY1.PY
C:\python\DAY10.py
C:\python\DAY11.py
C:\python\DAY12.py
C:\python\DAY2.py
C:\python\DAY3.py
C:\python\DAY4.py
C:\python\DAY5.py
C:\python\DAY6.py