一篇文章搞明白python中的列表(小白新手所学内容(三)之列表)

 2022.9.10 更

2022.9.11更

列表总序

 说到数据结构,相信很多非科班的人也听说过,那怎样理解数据结构呢?换一种说法什么是数据结构?

   数据结构是相互之间存在一种或者多种特定关系的集合。也可以理解为,数据结构就是将数据按照某种方式组合在一起的结构。这种数据可以是基本数据类型,比如整形、浮点数、和字符串等等 

    在python中常见的数据结构(自带的)是列表、元组、以及字典等。但是在python第三方包中还有其他的数据结构,比如numpy中的datafram或者series。

1.定义列表

  列表什么是列表,就是一系列元素按照某种顺序排列的集合(是有序的)。在python中用[]表示列表,并用逗号做分隔。

   语法定义:

          列表名字 = [元素1,元素2,元素3,...]

         举个例子:

#定义一个列表
name_python_pc = ['陈升','刘德华','杨幂','tfboys']
print('列表中的人名有:',name_python_pc)

        输出的结果为

列表中的人名有: ['陈升', '刘德华', '杨幂', 'tfboys']

         还有一种是字符串变为列表,

        语法结构为:

        list('字符串’)

print(list('hello'))
print(list('无极太子'))

        输出后:

['h', 'e', 'l', 'l', 'o']
['无', '极', '太', '子']

         列表是动态的是可变的!

对列表的进行的操作:访问元素、插入元素、修改元素,删除元素,对列表进行排序

2.访问列表元素

        访问列表元素,因为列表是有序序列的集合,每一个元素都自动带有一个位置信息,也就是索引。在编程语言中,也就是索引!我们根据索引访问列表中的元素

        语法是

        列表名 [ 索引]

#访问元素列表
fourElements=name_python_pc[2]
print('第三个元素是:',fourElements)
fourElements_two = name_python_pc[1]
print('第二个元素是:',fourElements_two)

        上面的例子输出的结果是

第三个元素是: 杨幂
第二个元素是: 刘德华

        计算机都是从0开始进行检索的,所以第三个元素是索引值为2,需要注意的是如果想要访问最后一个元素,而不记得它的索引号。我们可以把索引值设置为-1

3. 添加列表元素

        列表是可变的,我们想要添加元素有两种情况,一种是指定位置插入一个元素。另一种是在列表的最后插入元素。

                第一种情况

                语法为:

                object.insert (index,x)

                object  是对象(这里是列表);

                insert 是方法,意思是插入;

                index 是准备插入到其前面元素的那个索引;

                x        是准备插入的元素;

        举个例子

#添加列表元素
#(指定位置添加列表)
name_python_pc.insert(0,'魏璎珞')
print('现在的元素列表为:',name_python_pc)

        输出结果为:

现在的元素列表为: ['魏璎珞', '陈升', '刘德华', '杨幂', 'tfboys']

        这就是常用的方法。

                第二种方法

                在末尾添加新元素,用到的方法是.append()

                语法为:

                        object.append( x)

                        object  是对象;

                        append  是附加的意思;

                 举个例子        

#(在列表末尾添加元素)
name_python_pc.append('傅恒')
print('在末尾添加元素:',name_python_pc)

             输出结果为:

在末尾添加元素: ['魏璎珞', '陈升', '刘德华', '杨幂', 'tfboys', '傅恒']

         值得一提的是,在项目开发中,第二种方法经常被用来构建一个新的列表。首先,创建一个空的列表,然后在程序运行过程中使用append()方法添加元素 

#构建一个新的列表
qing_palace_drama = []
qing_palace_drama.append('皇上')
qing_palace_drama.append('富察皇后')
qing_palace_drama.append('高贵妃')
qing_palace_drama.append('纯妃')
print('使用append()构建列表为:',qing_palace_drama)

        输出结果为

使用append()构建列表为: ['皇上', '富察皇后', '高贵妃', '纯妃']

         就是慢慢添加最后一个元素,不断构成一个列表

4.修改列表元素

        修改元素跟访问元素一样需要根据索引值即可修改元素

        语法为:

        列表名为 [ insex ] ='新的值'

        举个例子

#修改列表元素
name_python_pc[2]='扶摇'
print('修改过后的新列表为',name_python_pc)

        输出结果为:

修改过后的新列表为 ['魏璎珞', '陈升', '扶摇', '杨幂', 'tfboys', '傅恒']

   这里面把刘德华去掉了,变成了扶摇

5.删除列表中的元素

        在项目中,有两种方法删除元素中列表。

        第一个根据元素值删除,第二个是根据元素值删除。根据索引值删除用的是del语句或者.pop方法

        语法:

        del (index)

        或者

        object.pop( )   这个是删除列表中最后一个元素

        object.pop(index)

        举个例子

#删除列表元素
print('原来列表中的元素是:',name_python_pc)
del name_python_pc[0]
print('del语句删除列表中的元素:',name_python_pc)

        输出结果为:

原来列表中的元素是: ['魏璎珞', '陈升', '扶摇', '杨幂', 'tfboys', '傅恒']
del语句删除列表中的元素: ['陈升', '扶摇', '杨幂', 'tfboys', '傅恒']

       用del语句 删除了元素中索引值为0的魏璎珞

         下面这个是用pop方删除列表中的元素

pop_name_python_pc= name_python_pc.pop(0)
print('pop方法删除列表中的元素为:',pop_name_python_pc)
print('pop方法删除列表中的元素过后的方法为:',name_python_pc)
final_name_python_pc=name_python_pc.pop()
print('默认删除最后一个元素为',final_name_python_pc)
print('删除最后一个元素的列表为:',name_python_pc)

        输出结果为:

pop方法删除列表中的元素为: 陈升
pop方法删除列表中的元素过后的方法为: ['扶摇', '杨幂', 'tfboys', '傅恒']
默认删除最后一个元素为 傅恒
删除最后一个元素的列表为: ['扶摇', '杨幂', 'tfboys']

         提示:如果我们不记得索引,只记得值时,我们可以用方法.remove()移除

        语法:

          列表名.remove('元素值’)

         举例如下:

        

name_python_pc.remove('扶摇')
print('移除扶摇过后列表为:',name_python_pc)
print(qing_palace_drama)
qing_palace_drama.remove('纯妃')
print('根据列表中的元素进行删除:',qing_palace_drama)

        输出结果为:     

移除扶摇过后列表为: ['杨幂', 'tfboys']
['皇上', '富察皇后', '高贵妃', '纯妃']
根据列表中的元素进行删除: ['皇上', '富察皇后', '高贵妃']

         remove一次只能删除一个元素值,注意该方法没有返回值。

6.列表排序

        列表排序分为永久性排序和临时性排序。

        永久性排序是真正改变列表中元素的顺序,用到的方法是.sort()

        临时性排序用到的方法是不改变原来的排列顺序,用到的方法是.sorted()。它返回的新建的排过序的列表副本,原来的列表顺序不受影响。

        举个例子

        

#构建新列表:
list_1 = ['p','f','b','a','d','e','f','g']

list_1.sort()
print('永久排序过后的列表为:',list_1)

#复制列表
print('原列表list_1为:',list_1)
list_2 = list_1.copy()
print('复制过后的列表list_2为:',list_2)
sorted(list_2)
print('临时性排序过后的列表为:',list_2)
print('原列表list_2为:',list_2)

        输出的结果为:

永久排序过后的列表为: ['a', 'b', 'd', 'e', 'f', 'f', 'g', 'p']
原列表list_1为: ['a', 'b', 'd', 'e', 'f', 'f', 'g', 'p']
复制过后的列表list_2为: ['a', 'b', 'd', 'e', 'f', 'f', 'g', 'p']
临时性排序过后的列表为: ['a', 'b', 'd', 'e', 'f', 'f', 'g', 'p']
原列表list_2为: ['a', 'b', 'd', 'e', 'f', 'f', 'g', 'p']

      copy是复制列表,从上面可以看出,临时排过序后,原列表不变

        其他常用的方法还有函数len()求列表长度、函数reverse()反转列表

        举个例子

#统计列表中f出现的次数
number_list_1_f = list_1.count('f')
print('f出现的次数为:',number_list_1_f)

#永久颠倒顺序
print('原来的顺序是:',list_2)
list_2.reverse()
print('颠倒后的顺序:',list_2)

         输出的结果为:

f出现的次数为: 2
原来的顺序是: ['a', 'b', 'd', 'e', 'f', 'f', 'g', 'p']
颠倒后的顺序: ['p', 'g', 'f', 'f', 'e', 'd', 'b', 'a']

        应该还记得.count是统计字符串出现的次数吧。

在python中,我们还经常使用in和not in 判断一个元素是否在列表中,如果满足条件,则返回true 不满足则返回false.

        

in_e = 'e' in list_2
print('使用in判断e元素是否在列表中',in_e)
not_in_v = 'v' not in list_2
print('使用not in判断是否在列表中')

7.列表切片

        列表切片就是把列表切开,处理列表中的部分元素。它是整个列表中的重点内容,在以后可能会经常用到。

        我们要用到的语法为:       

        [start:end:step]

        前文中有详细的介绍这几个部分是什么意思。这里就简单的在介绍一遍

        start是起始索引,从0开始

        end是终止索引,但是end-1为实际索引值

        step为步长,步长为正时向右取值,步长为负时,反向取值

注意最后于一点,切片的结果是不包含结束索引,即不包含最后一位,-1代表列表的最后一个索引

        

#切片
name_slice = ['扶摇','周叔','国公','无极太子','医圣','非烟殿主','苍穹']
print('第三个到第五个:',name_slice[2:5])
print('前五个',name_slice[0:5])
print('后三个:',name_slice[-3:])
print('偶数位置:',name_slice[::2])
print('奇数位置:',name_slice[::1])
name_slice[3:3]= ['玄机','太渊','天煞']
print('插入元素',name_slice)

        输出结果为:

第三个到第五个: ['国公', '无极太子', '医圣']
前五个 ['扶摇', '周叔', '国公', '无极太子', '医圣']
后三个: ['医圣', '非烟殿主', '苍穹']
偶数位置: ['扶摇', '国公', '医圣', '苍穹']
奇数位置: ['扶摇', '周叔', '国公', '无极太子', '医圣', '非烟殿主', '苍穹']
插入元素 ['扶摇', '周叔', '国公', '玄机', '太渊', '天煞', '无极太子', '医圣', '非烟殿主', '苍穹']

 8.计算列表长度

        语法:

        len(列表名)

print(name_slice)
print(len(name_slice))

        输出结果为:

['扶摇', '周叔', '国公', '玄机', '太渊', '天煞', '无极太子', '医圣', '非烟殿主', '苍穹']
10

9.返回元素所在索引位置

        语法:

        列表名.index('元素名‘)

print(name_slice.index('太渊'))

        输出:

4

        计算机的索引是从0开始的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值