python--列表

列表是最常用的Python数据类型

它可以作为一个方括号内的逗号分隔值出现

列表的数据项不需要具有相同的类型
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:
list1 = ['Google', 'Runoob', 1997, 2000];
list2 = [1, 2, 3, 4, 5 ];
list3 = ["a", "b", "c", "d"];

与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。

访问列表中的值

使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符(可以用切片的方法),如下所示:

list1 = ['Google', 'Runoob', 1997, 2000];
list2 = [1, 2, 3, 4, 5, 6, 7 ]; 
print ("list1[0]: ", list1[0])   #打印出来为:list1[0]:  Google
print ("list2[1:5]: ", list2[1:5])  #打印出来为   list2[1:5]:  [2, 3, 4, 5]

嵌套列表

使用嵌套列表即在列表里创建其它列表,例如:

li=[1,2,3]
lis=['a','b','c']
list=[li,lis]
print(list)   #打印为[[1, 2, 3], ['a', 'b', 'c']]
print(list[0])   #打印为[1, 2, 3]
print(list[0][2])  #打印为3    意思是在第一个列表里面寻找下标为2的字符

更新列表

你可以对列表的数据项进行修改或更新

1.直接用寻找下标的方法,进行添加:

list = ['Google', 'Runoob', 1997, 2000]
print ("第三个元素为 : ", list[2])   #打印为第三个元素为 :  1997
list[2] = 2001
print ("更新后的第三个元素为 : ", list[2])   # 打印为更新后的第三个元素为 :  2001

2.用append()   在括号中输入你需要追加的值    默认追加到尾部

3.用insert()   括号中输入你需要追加的值  添加到什么位置   根据下标   超出列表长度,则自动添加到最后

list=[33,'abc','123',80,'Google',1997,2000]
list.append('2018')
print(list)    # 打印为[33, 'abc', '123', 80, 'Google', 1997, 2000, '2018']
list.insert(3,'哈哈')
print(list)   # 打印为[33, 'abc', '123', '哈哈', 80, 'Google', 1997, 2000, '2018']
list.insert(10,'略略略')
print(list)    # 打印为[33, 'abc', '123', '哈哈', 80, 'Google', 1997, 2000, '2018', '略略略']

 4.extend (seq)         在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

注:  列表1.extend(列表2)  是把列表2迭代后遍历循环追加到列表1

li1=['a','b','c']
li2=[1,2,3,4]
li3=[li1,li2]
print(li3)   #打印为[['a', 'b', 'c'], [1, 2, 3, 4]]
li1.append(li2)
print(li1)   #打印为['a', 'b', 'c', [1, 2, 3, 4]]
li1.extend(li2)
print(li1)   # 打印为:['a', 'b', 'c', 1, 2, 3, 4]   所以使用extend()

删除列表元素

1.del  删除  可用切片的方法  

li1=[1,2,3,4,5]
del li1[2]
print(li1)  #打印为[1, 2, 4, 5]
del li1[2:]
print(li1)  #打印为[1, 2]

2.pop()   删除列表中的一个元素(默认最后一个元素),并且返回该元素的值   也可以用下标删除

li2=['a','b','c','a','d','e']
li2.pop()   #删除默认的最后一位
print(li2)    #打印为['a', 'b', 'c', 'a', 'd']
li2.pop(1)    #使用下标删除 删除下标为1的字符
print(li2)   # 打印为['a', 'c', 'a', 'd']

3.remove()   删除列表中某个值的第一个匹配项  括号中输入所要删除的对象   如果存在多个 则删除一个

li2=['a','b','c','a','d','e']
li2.remove('a')  #删除   有同列的 只删一个
print(li2)   #打印为 ['b', 'c', 'a', 'd', 'e']

返回寻找下标

1 . index()  从列表中找出某个值第一个匹配项的索引位置     不存在抛异常

  括号中有四个值(自己,  对象 ,  开始  , 结束)

li1=[1,2,3,4,5,6,3,7,8]
print(li1.index(3))  #打印为2 
print(li1.index(3,3,7))  #打印为6   在索引为3到7之间寻找

Python列表函数

1.dir(object)   将一个数据类型的所有函数和属性输出

print(dir(list))  
#打印为  ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__',
    #  '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', 
     # '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', 
    # '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__',
    #  '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', 
    # '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 
   # 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop',
    #  'remove', 'reverse', 'sort']

2. len()   列表元素个数

li1=[1,2,3,4,5,6,3,7,8]
print(len(li1))   #打印长度  9
print(li1.__len__())   #打印长度9和上效果一样   __len__()   下划线 下划线 类型的函数代表私有 一般不调用

3.max(list)  返回列表元素最大值  以ascii表为依据

4.min(list)   返回列表元素最小值  以ascii表为依据

li1=[1,2,3,4,5,6,3,7,8]
print(max(li1))     #按ASCII表查询
print(min(li1))     #按ASCII表查询

.

5. list(seq)  将元组转换为列表

tu=(1,2,3)   #元组
new_li=list(tu)
print(tu)    #  打印为(1, 2, 3)
print(new_li)  #打印为  [1, 2, 3]

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

li1=[1,2,3,4,5,6,3,7,8]
li1.reverse()
print(li1)  #打印为[8, 7, 3, 6, 5, 4, 3, 2, 1]

7.sort([func])  对原列表进行排序    func -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。

li1=[1,2,5,6,3,4,7,8]
li1.sort()
print(li1)   #打印为[1, 2, 3, 4, 5, 6, 7, 8]   按照ascii码排序

8.clear()  清空列表

li1=[1,2,5,6,3,4,7,8]
li1.clear()
print(li1)   #打印为 [ ]

9.copy()   复制列表   则顾名思义,复制一个副本,原值和新复制的变量互不影响

li1=[1,2,5]
li2=li1.copy()
print(li1)  # 打印为[1, 2, 5]
print(li2)  # 打印为[1, 2, 5]
li2[2]=3
print(li1)  # 打印为[1, 2, 5]
print(li2)   # 打印为[1, 2, 3]


猜你喜欢

转载自blog.csdn.net/Hao_python/article/details/80215870