相信大家在学习python基础的岁月里,各种数据类型让我们如丈二和尚般,其中最为重要的两个我认为是str和list!!!
认为不是的来赐教!
正所谓,学而不思则罔,思而不学则殆。温故而知新可以为师矣!
结合之前学的,认为list中使用最多的是列表生成式,在项目实践中较为常用,在一些公司的面试题中那更是老生常谈的对象。
综合多方知识,现总结如下:
闲言少叙,见代码!如有错误,请批评指教。
#encoding:utf-8
#python list 常用方法总结
#1.添加新元素
li = [1,2,3]
# li.append('hah') #在原列表的后面追加一个元素'hah'
# li.insert(2,'hello') # 在指定的位置添加元素(添加后下标所在的位置)[1, 2, 'hello', 3]
li2 = ['what','world']
li.extend(li2) #合并两个列表 li = [1, 2, 3, 'what', 'world'],注意li2中元素不变
print li
#2.查看列表中的值
print li[2] # 使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符
li3 = [1,2,2,3,4,11,1,1,1]
print li3.count(1) #查看某个元素在这个列表里的个数,如果改元素不存在,那么返回0
print li3.index(2) #找到这个元素的下标,如果有多个,返回第一个,如果找一个不存在的元素会报错
#3.删除列表中的元素
li4 = ['what','are','doing','?']
print li4.pop() # ? 删最后一个元素
print li4 # ['what', 'are', 'doing']
print li4.pop(2) #doing
print li4 # ['what', 'are']
print li4.remove('are') # None 无返回值
print li4 # ['what']
li5 = [222,3,344,666,888]
del li5[2] #删除指定下标对应的元素
print li5 #[222, 3, 666, 888]
del li5 # 删除整个列表, list删除后无法访问
#4.排序
li6 = [1,4,7,2,5,8,3,6,9]
li6.reverse() #将列表元素 “反转”(注意不是大小的逆序)
print li6 # [9, 6, 3, 8, 5, 2, 7, 4, 1]
li6.sort() #将列表元素按大小排序,默认为升序
print li6
li6.sort(reverse=True) #将列表元素按大小逆序
print li6
#5.列表操作函数
print len(li6) #列表元素个数
print max(li6) #返回列表元素最大值
print min(li6) #返回最小值
touple1 = (1,2,9,8)
print list(touple1) # [1, 2, 9, 8] 元组转换位列表
list1 = ['q','w','e','r']
for i ,v in enumerate(list1): #获取元素,以及元素所对应的下标
print 'index = %s,value = %s'%(i,v)
#6.切片(列表取值的一种方法)
list2 = ['feng','chui','yang','liu','di','didi']
print list2[1:4] # ['chui', 'yang', 'liu'] 获取下标1到4的元素(不包含下标为4的元素)
print list2[:4] # ['feng', 'chui', 'yang', 'liu'] 从头开始获取
print list2[1:] #['chui', 'yang', 'liu', 'di', 'didi'] 从下标为1的元素向后获取至末尾
print list2[:] #如果全部缺醒,取全部
###7.重点!!!!!!!
#注意这里的第三个参数 2 为步长,隔多少个元素取一个
print list2[0:4:2] #['feng', 'yang']
print list2[4:0:-2] #['di', 'yang'] 从下标为4的元素向前取四个元素,'chui', 'yang', 'liu', 'di',然后在这个列表中从右向左取隔一个娶一个
print list2[5:0:-2] #['didi', 'liu', 'chui']
###8.列表生成式!!!!重点!!! 主要和range(),for in 结合使用,
#要生成[1,2,3,4,5,6]这个列表
lis = list(range(1,7))
print lis # [1, 2, 3, 4, 5, 6]
#注意:range(x,y,step)第三个参数步进值
print list(range(0,10,2)) # [1, 2, 3, 4, 5, 6]
#将列表中的元素数值,变成原来的n数倍
print list(i * 2 for i in [1,2,3,4,5]) #[2, 4, 6, 8, 10]
print list(i * 2 for i in (1,2,3)) #[2, 4, 6]
print list(i *2 for i in range(0,10)) #[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
print list(i *2 for i in range(0,10,3)) #[0, 6, 12, 18]
#筛选出能被3整除的数的平方
print list(i **2 for i in range(1,10) if i%3==0) # [0, 9, 36, 81]
#使用双层循环,可以生成全排列
lis1 = [m + n for m in 'abc' for n in 'ABC']
print lis1 # ['aA', 'aB', 'aC', 'bA', 'bB', 'bC', 'cA', 'cB', 'cC']
#for循环其实可以同时使用两个甚至多个变量,
# 比如dict的items()可以同时迭代key和value:
d = {'x':'1','y':'2','z':'3'}
#注意str不能与int用 + 拼接
print [k + '='+ v for k,v in d.items()] # ['y=2', 'x=1', 'z=3']
for k,v in d.items():
print k,'=',v
"""
y = 2
x = 1
z = 3
"""