Python中的列表详细教程!

一、python中的列表:

列表到底是什么呢:

  列表:变量可以存储一个元素,而列表是一个大“容器”可以存储n个元素,
        程序可以方便的对这些数据进行整体操作
        列表相当于其他语言中的数组

1.代码如下:

示例:

a = 10
lst = ['hello', 'world', a, 30]
print(id(lst))  # 列表的地址
print(type(lst))  # 类型
print(lst)

lst1 = ['hello', 'world', 33, 'hello']
print(lst1.index('hello'))
print(lst1.index('hello', 1, 4))

lst2 = ['hello', 'world', 33, 'hello']
print(lst2[3])

lst3 = [10, 20, 30, 40, 50, 60, 70]
print('---------------步长为正数----------------')
print(lst3[1:5:1])
print(lst3[1:5])  # 默认步长为1  == print(lst[1:5:]print(lst3[:5:2])  # 默认start索引从0开始
print(lst3[0::2])  # 默认stop索引为n-1

print('----------步长为负数------------')
print(lst3[::-1])

print('-------------列表元素判断-----------------')

lst4 = [10, 20, 'python', 'hello']
print(10 in lst4)
print(100 in lst4)
print(100 not in lst4)
print(10 not in lst4)

print('-----------列表的for-in循环------------')

for item in lst4:
    print(item)

print('------------列表元素的增加-----------------')
lst5 = [1, 2, 3, 4]
print('添加元素之前:', lst5)
lst5.append(100)
print('(append添加)添加元素之后:', lst5)

lst6 = ['hello', 'world']
lst5.extend(lst6)
print("添加一个列表后:", lst5)

lst5.insert(1, 80)
print('在lst5任意位置添加后:', lst5)

lst7 = [True, False, 'hello']
lst5[1:] = lst7
print('切片添加后(会从索引0往后替换):', lst5)
lst5[1:1] = lst7
print('切片添加后(会从索引0往后替换并且切到末尾):', lst5)

print('------------列表元素的删除-----------------')
lst8 = [10, 20, 30, 40, 50, 30,66,333]
print(lst8)
lst8.remove(30)
print('删除列表中的一个元素(只删除第一个相同的元素):', lst8)

# lst8.remove(100)
# print("会提示删除的元素在列表中不存在",lst8)

lst8.pop(1)
print('删除索引为1的元素:',lst8)
lst8.pop()
print('索引为空,会删除最后一个元素',lst8)

print('-------------切片删除至少一个元素,产生一个新的列表对象--------------------')

new_lst=lst8[1:3]
print('原列表:',lst8)
print('切后的新列表:',new_lst)

print('-------------切片删除至少一个元素,不产生一个新的列表对象--------------------')

lst8[1:3]=[]
print("不产生新列表",lst8)

print('------------------清空列表中的元素------------------------')
lst8.clear()
print('clear清空后的列表元素(空列表):',lst8)

#         会报错,把lst_del列表删除了。
# lst_del=[10,20,30]
# del lst_del
# print(lst_del)

print('-------------列表元素的修改-----------------')

lst9=[11,22,33,44,55]
print('指定修改前:',lst9)
lst9[3]=1000
print('(单个)指定修改后:',lst9)
lst9[1:3]=[111,222,333,444]
print('(列表(多个))指定修改后:',lst9)

print('-------------列表的排序---------------------')
lst10=[1,4,2,40,20,99]
print('排序前的列表:',lst10)
lst10.sort()
print('排序后的列表',lst10)
lst10.sort(reverse=True)
print('(降序)排序后的列表',lst10)

print('-----------------------------------')
lst10=[1,4,2,40,20,99]
print('排序前的列表:',lst10)
new_lst1=sorted(lst10)
print('还是原列表',lst10)
print("产生的新列表",new_lst1)
jiangxu_lst=sorted(lst10,reverse=True)
print('降序排序:',jiangxu_lst)

print('----------列表表达式------------------------')
lst11=[i for i in range(1,10)]
print('原来列表',lst11)
lst11=[i*i for i in range(1,10)]
print('i*i后的列表:',lst11)
lst11=[i*2 for i in range(1,10)]
print('i*2后的列表:',lst11)

2.运行结果:

示例:

2999306310152
<class 'list'>
['hello', 'world', 10, 30]
0
3
hello
---------------步长为正数----------------
[20, 30, 40, 50]
[20, 30, 40, 50]
[10, 30, 50]
[10, 30, 50, 70]
----------步长为负数------------
[70, 60, 50, 40, 30, 20, 10]
-------------列表元素判断-----------------
True
False
True
False
-----------列表的for-in循环------------
10
20
python
hello
------------列表元素的增加-----------------
添加元素之前: [1, 2, 3, 4]
(append添加)添加元素之后: [1, 2, 3, 4, 100]
添加一个列表后: [1, 2, 3, 4, 100, 'hello', 'world']
在lst5任意位置添加后: [1, 80, 2, 3, 4, 100, 'hello', 'world']
切片添加后(会从索引0往后替换): [1, True, False, 'hello']
切片添加后(会从索引0往后替换并且切到末尾): [1, True, False, 'hello', True, False, 'hello']
------------列表元素的删除-----------------
[10, 20, 30, 40, 50, 30, 66, 333]
删除列表中的一个元素(只删除第一个相同的元素): [10, 20, 40, 50, 30, 66, 333]
删除索引为1的元素: [10, 40, 50, 30, 66, 333]
索引为空,会删除最后一个元素 [10, 40, 50, 30, 66]
-------------切片删除至少一个元素,产生一个新的列表对象--------------------
原列表: [10, 40, 50, 30, 66]
切后的新列表: [40, 50]
-------------切片删除至少一个元素,不产生一个新的列表对象--------------------
不产生新列表 [10, 30, 66]
------------------清空列表中的元素------------------------
clear清空后的列表元素(空列表): []
-------------列表元素的修改-----------------
指定修改前: [11, 22, 33, 44, 55]
(单个)指定修改后: [11, 22, 33, 1000, 55]
(列表(多个))指定修改后: [11, 111, 222, 333, 444, 1000, 55]
-------------列表的排序---------------------
排序前的列表: [1, 4, 2, 40, 20, 99]
排序后的列表 [1, 2, 4, 20, 40, 99]
(降序)排序后的列表 [99, 40, 20, 4, 2, 1]
-----------------------------------
排序前的列表: [1, 4, 2, 40, 20, 99]
还是原列表 [1, 4, 2, 40, 20, 99]
产生的新列表 [1, 2, 4, 20, 40, 99]
降序排序: [99, 40, 20, 4, 2, 1]
----------列表表达式------------------------
原来列表 [1, 2, 3, 4, 5, 6, 7, 8, 9]
i*i后的列表: [1, 4, 9, 16, 25, 36, 49, 64, 81]
i*2后的列表: [2, 4, 6, 8, 10, 12, 14, 16, 18]

进程已结束,退出代码0


总结:

提示:这里对文章进行总结:

        创建:
         列表名称 = [’‘,’‘]           中间使用英文逗号隔开

         列表名称 = list([’‘,’‘,’‘])

  特点:
         列表元素按顺序有序排列
         索引映射唯一数据
         列表可以存储重复数据
         任意数据类型混存
         根据需要动态分配和回收内存

列表的查询操作:

  获取列表中指定元素的索引              index()
      如查询列表中存在n个相同元素,只返回相同元素中的第一个元素的索引
      如果查询的元素在列表中不存在,则会抛出ValueError
      还可以在指定的start和stop之间进行查询

                          print(lst1.index('hello'))
                          print(lst1.index('hello',1,4))

          获取列表中的单个元素:
                 正向索引   从0到n-1
                 逆向索引   从-n到-1
                 指定索引不存,抛出indexError

          获取列表中的多个元素:
                    列表名称[start: stop: step ]

                切片的结果   原列表片段的拷贝
                切片的范围   [start,stop]
                step默认1   简写为:[start:stop]
 step为正数: [:stop:step] 切片的第一个元素默认为列表的第一个元素 
                                   从start开始往后计算切片
              [start::step] 切片的最后一个元素默认是列表的最后一个元素 
                                   从start开始往后计算切片

 step为负数: [:stop:step] 切片的第一个元素默认为列表的最后一个元素   
                                   从start开始往前计算切片
              [start::step] 切片的最后一个元素默认是列表的第一个元素    
                                   从start开始往前计算切片


      判断指定元素在列表中是否存在
                     元素 in 列表名称
                     元素 not in 列表名称

            列表元素的遍历:
                for 迭代变量 in 列表名称:
                         遍历体


           列表元素的添加:

        append():  在列表的末尾添加一个元素
        except():  在列表的末尾至少(多个(添加别的列表))添加一个元素
        insert():  在列表的任意位置添加一个元素
        切片:      在列表的任意位置添加至少一个元素  (会替换数据)


           列表元素的删除:

          remove():    一次删除一个元素   
                       重复元素只删除第一个 
                       元素不存在会抛出ValueEorror
                         
           pop():       删除一个指定索引位置上的元素  
                        指定索引不存在抛出indexerror 
                        不指定索引:删除列表中最后一个元素
                         
                         切片:       一次至少删除一个元素
                         
                         clear():     清空列表
                         
                         del:         删除列表


           列表元素的修改:
                        为指定索引的元素赋予一个新值
                        为指定的切片赋予一个新值


          列表元素的排序:

 1: 调用sort()方法:列表中的所有元素默认按照从小到大的顺序进行排序,
                      可以指定 reverse =True,进行降序排序
 2: 调用内置函数sorted(),
             可以指定reverer=True,进行降序排序,原列表不发生改变

       列表生成式:
                 格式:  [ i*i(i)  for i in range(1,10)]

                          i*i: 表示列表元素的表达式
                          i:   自定义变量
               range(1,10):   可迭代对象

             注意:  “表示列表元素的表达式”中通常包含自定义变量

你可能感兴趣的:(python,列表,索引)