猫史档案馆


【萌新院教程】Python教程:列表

用户:绝命徒神探绝命徒神探查看:0 回复:7 评论:0 创建时间:2019-01-30T19:35:18


雷猴!这里是绝命!

今天会给大家带来一期Python的教程,吼不吼?

好了我们不胡扯了(哪里胡扯了),让我们进入正题吧!

好了我们今天讲列表。

好,第一个问题,列表是什么?(现实)

列表,你可以把它想象成一个多层抽屉,当你要用第一层时,打开第一层……以此类推,还可以根据自身的需要增加或者删除列表。

Python中的列表十分的强大,它就像是数组的一个增强版,可以将一堆乱七八糟的数据全部丢进去,它也不会拒绝,一视同仁。

创建列表十分的简单,跟给变量赋值一样:

number=[1,2,3,4,5,6]

484很简单?但是说列表的强大,在这个列表里好像没有体现到,所以:

number1=[1,"哲学",3.14,[1,2,3],"萌新院"]

看,什么数据都能往列表里扔,什么?还可以在列表里面装列表?

是的,你没看错。

而且,你还可以创建一个空列表:

tb=[]

什么?你觉得这还不够?

对呀你刚刚明明说了,列表可以增加元素还可以删除元素,你怎么不说呀?

emmm,我正准备说。

列表内容肯定不能固定,所以我们会更新列表,这时就会用到append()方法:

acb=[1,2,3,4]
acb.append("爱编程")

运行结果:

center_image

center_image

看到了吗?不过,这个方法的调用怎么跟平时BIF调用的方法不一样?这是因为append()不是一个BIF,他是属于列表对象的一个方法。中间的这个“.”其实可以理解为范围的意思。

我们再将5和6加进去试试。

center_image

咦,这次为什么报错了呢?看来是append()这个方法不能同时增加好几个元素,这个时候,我们可以用extend()方法:

abc.extend([5,6])
print(abc)

结果:

center_image

看,这次成功了,但是有一点需要注意——

extend()这个方法的参数必须要是一个列表,不然就会报错:

center_image

是不是?

但是这样做仍然有一个问题——它只能往列表末尾添加元素,如果我想插入到其他位置呢?我们还有一个方法——insert()

我们来试一下:

abc.insert(1,"新朝暮里")

结果:

center_image

等等,不是说好了插入第一个位置吗?怎么跑到第二的位置去了?

其实各大编程语言后,都有一个规定,那就是——凡是顺序索引,均从0开始。

我们可以再试一试:

abc.insertr(0,"三体")

结果:

center_image

看,这次成功了。

有童鞋还会问:“如果我想从列表中获取元素怎么办?”没事,我们可以利用列表的引索值(从0开始):

st=["叶文洁","罗辑","程心","刘慈欣"]
st[1]

center_image

还可以让元素的位置互调:

st[0],st[3]=st[3],st[0]
st

center_image

我们再来讲解从列表中删除元素,有三种方法,分别是:remove(),del和pop(),先演示remove()方法:

st.remove("刘慈欣")
st

center_image

使用这个方法,你只需要知道元素存在与列表之中就行了,如果元素不存在与列表,就会报错:

center_image

而用del可以删除某个特定地方的元素:

del st[1]
st

center_image

但是要知道,这个del后面并没有括号,这说明它不是一个方法,而是一个语句,如果你想删除掉这整个列表,那你就可以直接用del加列表名删除。

del st

最后,用pop()方法是特定元素蹦出来:

name=["刘慈欣","王晋康","何夕","三体"]
name.pop(3)

center_image

      【···列表分片···】

列表分片又是一个是么东西呢?列表分片(slice)可以方便地一次性获取多个元素:

name=["Python","C语言","Java","C++"]
name[0:2]

center_image

484很简单?

但是,列表分片这种操作,在Python里面也是可以简写的!

name[:1]

center_image

如果没有开始位置的话,Python会默认为0.如果要得到列表末尾的所有元素,只需要去掉结束位置。如果没有引索值,只有冒号的话,我们会的到整个列表的拷贝。

列表分片,就是原列表副本。

其实列表分片还可以接受第三个参数,代表着步长,不指定它的值的时候,默认值为1.我们现在试验一下,将它改成2:

center_image

如果把步长改为2,那么每前进两个元素才取一个出来。还可以写成

number[::2]

如果将其改成负数,会怎样呢?

center_image

 

看,484很牛(和谐)?如果步长为-1,就是将一个列表倒置过来。

本期结束了,88.

 

 


回复

上一页1 页 / 共 1下一页
绝命徒神探绝命徒神探

emmm

点赞0


评论


绝命徒神探绝命徒神探

 

点赞0


评论


绝命徒神探绝命徒神探

有人吗?

 

点赞0


评论


小企鹅飞小企鹅飞

真棒

点赞0


评论


海龟本尊2海龟本尊2

emotion_编程猫_点赞

点赞0


评论


帅气蛋圆桌帅气蛋圆桌

考古 2024.4.17 18:10

点赞0


评论


帅气蛋圆桌帅气蛋圆桌

imgsrc="https://static.codemao.cn/emoji/codemao/%E7%BC%96%E7%A8%8B%E7%8C%AB_%E5%8E%89%E5%AE%B3%E4%BA%86.gif"alt="emotion_编程猫_厉害了"

点赞0


评论