Python中使用索引来访问序列中的某一个元素,如果要访问序列中某一定范围内的元素,可以使用分片来完成。 分片是list里面常见的操作,使用方法:list[start:End:step],可以代替for 循环的一种简单操作。 从字符串到list,再到数组都是可以使用索引和分片的。
list list的下标从0开始的,单个数据的话用索引标识, 索引: list[0] 就是取第一个元素,list[-1]就是取列表的最后一个元素。 分片:list[start:end],也可以使用list(start,end)来表示分片,也可以有步长的限定。嵌套list goodslist=[['Iphone', 5800], ['Mac Pro', 12000], ['Bike', 800], ['Alex Python', 89], ['Starbuck Latte', 30], ['Cap', 45], ['Air conditioning', 3000], ['Ipad', 4200]] [g[0] for g in goodslist] #输出结果是第一列数据 DataFrame dic = { 'lucy':[100,19,87,90,11,56], 'tom':[89,99,93,56,80,100]} import pandas as pd df = pd.DataFrame(dic,index=list('ABCDEF')) 得到lucy的学习成绩: df['lucy'] 得到lucy和tom的两个人的学习成绩: df[['lucy','tom']] # 另外索引是可以进行嵌套使用的,也就是索引后可以再次进行索引 得到lucy的A和B科目学习成绩: df['lucy'][0:2]1、# 参数默认值
# 函数定义的时候可以哟默认值 def f1(a,b,c=1): #定义这中函数的时候,注意一定把有默认值得参数放在最后,不然会报错 return a+b+c print(f1(0,2)) #可以传和函数定义的参数个数不同的参数。 print(f1(c=0,b=2,a=3)) #也可以点颠倒顺序2、可变函数(参数得个数不限定)
def f2(*args): sum = 0 for num in args: sum += num return sum print((1,3,4,5))3、关键字函数
1、enumerate(数组组装成字典)
mapping=[] s_list=['a','b','c'] for k,v in enumerate(s_list): mapping[v]=k newmap={k:v for v,k in mapping.items() } dict_new2= dict(zip(dict_ori.values(), dict_ori.keys()))2、列表推导式
some_tuples = [(1, 2, 3), (4, 5, 6), (7, 8, 9)] result=set[j for x in some_tuples for j in x]3、多层嵌套的扁平化 1)对于知道嵌套层数以及层数一致的可以使用推导式也能: [i for u in test_list for i in u]
2)一般的嵌套数组数据可以采用递归取数:
test_list=[[[1,2],[3,4]],[[1,5]]] result=[] def take_out(): for i in items: if isinstance(i,int): result.append(i) else: take_out(i) take_out(test_list)4、map函数和for循环
import re class cleanStr(): def test_sub(value): return re.sub('[?!#]','',value) def map_test(f,s): result=[] for i in map(f,s): result.append(i) return result def clean_str(ops,states): count=0 while count<len(ops): states=map_test(ops[count],states) count=count+1 return states clean_ops=[str.strip,str.title,test_sub] states=[' Alabama ','Georgia! ','Georgia','georgia'] cleanStr.clean_str(clean_ops,states)