判断列表是否为空:

方式一:根据列表长度判断

list_temp = []
if len(list_temp):
     # 存在值即为真
else:
    # list_temp是空的

方式二:

list_temp = []
if list_temp:
    # 存在值即为真
else:
    # list_temp是空的

第二个方法要优于第一个方法,在Python中,False,0,’’,[],{},()都可以视为假。

while语句中:

while A and B: 代表条件A和条件B就要满足
while A or B:代表条件A和条件B任意满足其一均可。

if not语句

如果没有
例如:if not root 如果根节点不存在

return语句

return代表结束整个函数

lambda用法

Python使用lambda来创建匿名函数

  • lambda只是一个表达式,函数体比def简单很多。
  • lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
  • lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
  • 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。

例子

func=lambda x:x+2
print(func(1))
#3
print(func(2))
#4
 
#以上lambda等同于以下函数
def func(x):
    return(x+2)

map函数

map() 会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
用法:
map(function, iterable, ...)

  • function – 函数
  • iterable – 一个或多个序列

可与lambda联合使用
例子

>>>def square(x) :            # 计算平方数
...     return x ** 2
... 
>>> map(square, [1,2,3,4,5])   # 计算列表各个元素的平方
[1, 4, 9, 16, 25]
>>> map(lambda x: x ** 2, [1, 2, 3, 4, 5])  # 使用 lambda 匿名函数
[1, 4, 9, 16, 25]
# 提供了两个列表,对相同位置的列表数据进行相加
>>> map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
[3, 7, 11, 15, 19]

enumerate函数

enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
例子

seasons = ['Spring', 'Summer', 'Fall', 'Winter']
for index,value in enumerate(seasons)
	print(index,value)
#结果
0, 'Spring' 
1, 'Summer',
2, 'Fall',
3, 'Winter'

add函数

add()方法用于给集合添加元素,如果添加的元素在集合中已存在,则不执行任何操作。
例子

fruits = {"apple", "banana", "cherry"}
fruits.add("orange") 
print(fruits)
#结果
{'apple', 'banana', 'orange', 'cherry'}

fruits = {"apple", "banana", "cherry"}
fruits.add("apple")
print(fruits)
#结果
{'apple', 'banana', 'cherry'}

set()函数

set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。
返回值:返回新的集合对象。【集合添加元素用add函数】
例子

x = set('runoob')
 y = set('google')
print(x, y)
# 结果:(set(['b', 'r', 'u', 'o', 'n']), set(['e', 'o', 'g', 'l']))   # 重复的被删除

res = set()
res.add("apple")

zip函数

zip() 函数将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
返回值:元组列表
例子

>>>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 相反,可理解为解压,返回二维矩阵式
[(1, 2, 3), (4, 5, 6)]

index函数

index() 函数用于从列表中找出某个值第一个匹配项的索引位置。
语法list.index(x[, start[, end]])例子

aList = [123, 'xyz', 'runoob', 'abc']
print "xyz 索引位置: ", aList.index( 'xyz' )
print "runoob 索引位置 : ", aList.index( 'runoob', 1, 3 )
#结果
#1
#2

count函数

count() 方法用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。
语法str.count(sub, start= 0,end=len(string))例子

str = "this is string example....wow!!!";
sub = "i";
print(str.count(sub, 4, 40))
#结果 2
sub = "wow";
print(str.count(sub))
#结果  1

split函数

split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符
返回值:返回分割后的字符串列表
例子

s = "I am a student"
print(s.split(" "))
# 结果 ['I','am','a','student']

join函数

join()函数:用于将序列中的元素以指定的字符连接生成一个新的字符串。
语法: ‘sep’.join(seq)
参数说明
sep:分隔符。可以为空
seq:要连接的元素序列、字符串、元组、字典
上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串
返回值:返回一个以分隔符sep连接各个元素后生成的字符串

列表转字符串

arr = [1,2,3]
string = ','.join(str(i) for i in arr)
arr = [1,2,3]
b = []
for i in arr:
	b.append(str(i))
string = ',',join(b)
# b: ['1','2','3']
# string: 1,2,3

list sort方法

sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。该方法没有返回值,但是会对列表的对象进行排序
语法
list.sort( key=None, reverse=False)例子

numbers = [3,5,1,4,2]
numbers.sort()
print(numbers)
# 结果:[1,2,3,4,5]

vowels = ['e', 'a', 'u', 'o', 'i']
# 降序
vowels.sort(reverse=True)
print(vowels)
# 结果:['u', 'o', 'i', 'e', 'a']

# 指定第二个元素排序
def takeSecond(elem):
    return elem[1]
random = [(2, 2), (3, 4), (4, 1), (1, 3)]
random.sort(key=takeSecond)
print ('排序列表:', random)
# 结果:[(4, 1), (2, 2), (1, 3), (3, 4)]

sorted函数

sorted() 函数对所有可迭代的对象进行排序操作。
返回值:返回重新排序的列表。
例子

a = [5,7,6,3,4,1,2]
b = sorted(a)  
print(b)
# 结果:[1,2,3,4,5,6,7]

sort 与 sorted 区别:
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

list reverse函数

reverse() 函数用于反向列表中元素。
语法list.reverse()返回值该方法没有返回值,但是会对列表的元素进行反向排序。
例子

aList = [123, 'xyz', 'zara', 'abc', 'xyz']
aList.reverse()
print(aList)
# 结果:['xyz', 'abc', 'zara', 'xyz', 123]

reversed函数

reversed 函数返回一个反转的迭代器。
语法reversed(seq)返回值:返回一个反转的迭代器。

# 字符串
seqString = 'Runoob'
print(list(reversed(seqString)))
 
# 元组
seqTuple = ('R', 'u', 'n', 'o', 'o', 'b')
print(list(reversed(seqTuple)))
 
# range
seqRange = range(5, 9)
print(list(reversed(seqRange)))
 
# 列表
seqList = [1, 2, 4, 3, 5]
print(list(reversed(seqList)))

# 结果:['b', 'o', 'o', 'n', 'u', 'R']
['b', 'o', 'o', 'n', 'u', 'R']
[8, 7, 6, 5]
[5, 3, 4, 2, 1]

sum函数

python内置函数sum() 方法对系列进行求和计算。
语法sum(iterable[, start]) iterable – 可迭代对象,如:列表、元组、集合
start – 指定相加的参数,如果没有设置这个值,默认为0。
例子

>>>sum([0,1,2])  
3  
>>> sum((2, 3, 4), 1)        # 元组计算总和后再加 1
10
>>> sum([0,1,2,3,4], 2)      # 列表计算总和后再加 2
12

endswith函数

endswith() 方法用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。可选参数"start"与"end"为检索字符串的开始与结束位置。
语法str.endswith(suffix[, start[, end]]) suffix – 该参数可以是一个字符串或者是一个元素。
start – 字符串中的开始位置。
end – 字符中结束位置。
返回值:如果字符串含有指定的后缀返回True,否则返回False。
例子

str = "this is string example....wow!!!";
suffix = "wow!!!";
print(str.endswith(suffix,20)) 
suffix = "is";
print(str.endswith(suffix, 2, 4))
print(str.endswith(suffix, 2, 6))
# 结果:True
True
False

values_count函数

value_counts()是一种查看表格某列中有多少个不同值的快捷方法,并计算每个不同值有在该列中有多少重复值。
value_counts()在Series的用法

import pandas as pd
import numpy as np
from pandas import DataFrame
from pandas import Series
s1=Series(["timo","mike","anni","timo"])
s1.value_counts()
# 结果
timo    2
mike    1
anni    1
dtype: int64

value_counts()在DataFrame的用法

import pandas as pd
df = pd.DataFrame({'区域' : ['西安', '太原', '西安', '太原', '郑州', '太原'], 
                  '10月份销售' : ['0.477468', '0.195046', '0.015964', '0.259654', '0.856412', '0.259644'],
                  '9月份销售' : ['0.347705', '0.151220', '0.895599', '0236547', '0.569841', '0.254784']})
print(df)
print(df['区域'].value_counts())
# 结果
太原  3
西安  2
郑州  1
Name:区域  dtype: int64

如果想升序排列,设置参数 ascending = True:

abs函数

abs() 函数返回数字的绝对值。
例子

print(abs(-200))
# 200

min函数字符串比较大小

字符串比较大小是按位比较,两个字符串第一位字符的ascii码谁大,字符串就大,不再比较后面的;第一个字符相同就比第二个字符串,以此类推,需要注意的是空格的ascii码是32,空(null)的ascii码是0。
例子

str = ["flower", "flow", "flight"]
min_str = min(str)
print(min_str)
# 结果:flight

通过命名参数key,指定取最值方法
min(x,key=len):传入了长度参数,根据字符长度取最小值
例子

str = ["flower", "flow", "flight"]
min_str = min(str,key=len)
print(min_str)
# 结果:flow

get函数

Python 字典(Dictionary) get() 函数返回指定键的值,如果值不在字典中返回默认值。
语法dict.get(key, default=None)

  • key – 字典中要查找的键。
  • default – 如果指定键的值不存在时,返回该默认值。

返回值:返回指定键的值,如果值不在字典中返回默认值None。
例子

dict = {'Name': 'Zara', 'Age': 27}
print(dict.get('Age'))
print(dict.get('Sex', "Never"))
# 结果
27
Never

round函数

round() 方法返回浮点数x的四舍五入值
语法round(x,n)

  • x – 数值表达式。
  • n – 数值表达式,表示从小数点位数

返回值:返回浮点数x的四舍五入值
例子

print(round(2.25,1))
print(round(7.869,2))
# 结果
2.2
7.87

另一种保留小数写法

print("%.1f" % 0.13333)   # 保留一位小数,0.1
print("%.3f" % 0.25789)   # 保留三位小数,0.258

拓展:保留百分比小数点后几位

print("{:.0%}".format(42/50))  # 不显示小数位,84%
print("{:.3%}".format(42/50))  # 显示小数点后两位 84.000%

isinstance()和issubclass()函数

isinstance(object,classinfo),用于判断object是否是classinfo的一个实例,或者object是否是classinfo类的子类的一个实例,如果是返回True.
issubclass(class,classinfo),用于判断class是否是classinfo类的子类,如果是返回True.

"//"符号

“//”代表取商。

a = 10
b = 3
c = a//b 
print(c)
# 结果:3

open读取文件

使用open方法打开文件,语法如下:
open(文件名,访问模式) “r”,“w”,“a”,“rb”,“wb”,“ab”:指定对文件打开方式即文件内容操作方式,即只读,可写,追加,二进制读,二进制写,二进制追加

read读取文件

read()读整个文件;
readline()每次读出一行内容;
readlines()读取文本中所有的行

pandas生成csv文件

利用pd.DataFrame方法先将数据转换成一个二维结构数据,再使用to_csv方法生成csv文件
dataframe.to_csv(生成的文件路径,index=False(是否加索引号),sep=’,’(以逗号为分隔符))

dataframe = pd.DataFrame({'content':text,'y':label_list})
dataframe.to_csv('new.csv',index=False,sep=',')

python的real的函数 python real_元组

pandas读取excel文件

data = pandas.read_excel("area.xlsx")
datalist = data.values.tolist()