序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
Python有6个序列的内置类型,但最常见的是列表和元组
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
列表的数据项不需要具有相同的类型
list1 = ['python', 'java', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
#通过下标访问列表中的值
print ("list1[0]: ", list1[0])
#通过下标截取;列表
print ("list2[1:5]: ", list2[1:5])
#列表更新
list1.append('c#')
print ("After update value at list : ")
print(list1)
#删除列表元素
del list1[3]
print ("After deleting value at index 3 : ")
print(list1)
常用api方法
python list列表常用方法包括,insert将对象插入列表、remove移除指定列表元素某个值的第一个匹配项、pop 移除列表中的一个元素(默认最后一个元素)、count 统计某个元素在列表中出现的次数、 reverse 反向列表中元素、sort 对原列表进行排序、extend 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
list1 = ['python', 'java', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d","a","abc","A"]
list4=['4','1','3','5','C','A','D']
#统计元素在列表中出现的次数
print("元素a在列表出现次数",list3.count('a'))
#列表元素插入
list2.insert( 3, 2009)
print("指定位置插入一个元素 ",list2)
list2.insert(3,list1[0:2])
print("指定位置插入列表-方法一",list2)
list2.insert(3,[i for i in list3[0:2]])
print("指定位置插入列表-方法二",list2)
#列表元素移除
list3.remove('a');
print ("移除重复元素 ", list3)
list3.remove('abc');
print ("移除不重复元素", list3)
#列表元素移除
#pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
#obj -- 可选参数,要移除列表元素的索引值,不能超过列表总长度,默认为 index=-1,删除最后一个列表值。
list_pop=list1.pop(2)
print("移除指定元素",list_pop)
#不填写参数-即默认移除最后一个
list_pop1=list1.pop()
print("移除默认元素",list_pop1)
#列表继承
list2.extend(list3)
print("继承结果",list2)
#列表元素逆序
list2.reverse()
print("逆序结果",list2)
# sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数
# cmp -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
# key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
# reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。
list4.sort()
print("默认升序输出",list4)
list4.sort(reverse=True)
print("降序输出:",list4)
# 获取列表的第二个元素
def takeSecond(elem):
return elem[1]
# 列表
random = [(2, 2 ,3), (3, 4 ,6), (4, 1 ,9), (1, 3 ,4)]
# 指定第二个元素排序
random.sort(key=takeSecond)
# 输出类别
print('排序列表:',random)
list使用 拓展延伸-嵌套list 处理
对于上例的结果4的结果,如何将嵌套list列表合并为一个list列表
方法一:extend函数
ceshi=[['中等', '大笑', '安静', '未知'], ['中等', '大笑', '安静', '未知'], ['中等', '大笑', '安静', '未知']] a=[result.extend(i) for i in ceshi ]
方法二:嵌套for循环拆法
temp_ceshi=[j.split(',') for i in ceshi for j in i]
middle_ceshi=[j for i in temp_ceshi for j in i]
result_ceshi=['+'.join(middle_ceshi)]
方法三:funtools函数拆分法
该方法 需要引入 functools模块的reduce方法
from functools import reduce
def list_unpack(l):
return functools.reduce(lambda x,y:x+y,l)
temp_ceshi=list_unpack(ceshi)
#使用set集合对处理的集合去重
middle_ceshi=list(set(temp_ceshi))
result_ceshi=['+'.join(middle_ceshi)]
方法四:itertools函数拆分法
改方法使用时需要先导入itertools模块 import itertools
temp_ceshi=list(itertools.chain.from_iterable(ceshi)) middle_ceshi=list(set(temp_ceshi)) result_ceshi=['+'.join(middle_ceshi)]
以上是对python list列表使用的总结及拓展,关于 itertools、functools模块的具体用法,将在下章详解~~~



