python基础之列表List的基本使用方法

相信大家在学习python基础的岁月里,各种数据类型让我们如丈二和尚般,其中最为重要的两个我认为是strlist!!!

认为不是的来赐教!

正所谓,学而不思则罔,思而不学则殆。温故而知新可以为师矣!

结合之前学的,认为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
"""

猜你喜欢

转载自blog.csdn.net/cai_cai_cai_1992/article/details/82988545