Python5.1 列表 list

列表和数组的区别

  第一眼看到列表这个东西,以为就是其他语言的数组,仔细一看,居然可以往这玩意儿里面放不同类型的数据,佩服!

创建列表

方括号抱起来一堆数据,各自用逗号隔开就是一个列表:

1 >>> [1,2,3,4,5]
2 [1, 2, 3, 4, 5]

没有变量名的列表无法被再次使用,所以最好上名字:

 1 >>> num = [1,2,3,4,5]
 2 >>> type(num)
 3 <class 'list'> //类型是列表
 4 >>> for each in num: //前面学for的时候说过,可迭代对象可以是数组(列表)
 5     print(each)
 6 
 7 1
 8 2
 9 3
10 4
11 5

列表可以容纳各种类型的元素:

ps:感觉用处不大,你列表可以容纳各种类型,使用你列表的函数可以吗,到头来不还是写函数的时候头疼。

 1 >>> s1 = [1,'张三','3',4.3,[5,6,7]]
 2 >>> for each in s1:
 3     print(each,type(each))
 4 
 5     
 6 1 <class 'int'>
 7 张三 <class 'str'>
 8 3 <class 'str'>
 9 4.3 <class 'float'>
10 [5, 6, 7] <class 'list'> //甚至可以放进子列表

也可以创建空一个列表:

1 >>> empty = []
2 >>> type(empty)
3 <class 'list'>

添加元素

  append(a)

  向列表末尾追加一个元素:

1 >>> empty.append(1)
2 >>> empty
3 [1]

  extend([a, b, c])

  向列表末尾追加另一个列表:

1 >>> empty.extend([2,3])
2 >>> empty
3 [1, 2, 3]

  而如果想要指定位置,那么就要用到

  insert(a, b)

  其中a表示位置(从0开始的索引),b表示待插入的元素。

  ps:a可以是负数,表示与列表末尾相对距离。

1 >>> empty.insert(1,1.5)//正数索引
2 >>> empty
3 [1, 1.5, 2, 3]
1 >>> empty.insert(-1,2.5)//负数索引
2 >>> empty
3 [1, 1.5, 2, 2.5, 3]

获取元素

  索引获取

  通过索引值直接获取元素:

1 >>> prize = ['特等奖','一等奖','二等奖','三等奖','阳光普照','没中奖']
2 >>> prize[1]
3 '一等奖'

  如果要取倒数第几个,可以先找出列表长度,然后往后数一个即可,也就是 list[len(list)-1] ,当然也可以用负数,表示从末尾开始反向索引,其实就是省略了len()的部分,效果一样:

1 >>> prize = ['特等奖','一等奖','二等奖','三等奖','阳光普照','没中奖']
2 >>> prize[1]
3 '一等奖'
4 >>> prize[len(prize)-1]
5 '没中奖'
6 >>> prize[-1]
7 '没中奖'

  如果要抽取子列表中的元素,要使用两次索引:

>>> prize = ['特等奖','一等奖','二等奖','三等奖',['电动牙刷', '剃须刀', '充电宝', '玩偶'],'没中奖']
>>> prize[4][2]
'充电宝'

  取出元素以后,可以直接给这个索引重新赋值,甚至可以把字符串赋值成子列表:

1 >>> prize = ['特等奖','一等奖','二等奖','三等奖',['电动牙刷', '剃须刀', '充电宝', '玩偶'],'没中奖']
2 >>> prize [0] = ['iPhone13Pro','笔记本电脑','万元购物卡']
3 >>> prize
4 [['iPhone13Pro', '笔记本电脑', '万元购物卡'], '一等奖', '二等奖', '三等奖', ['电动牙刷', '剃须刀', '充电宝', '玩偶'], '没中奖']

  如果要调换两个元素的顺序,通常可以和其它语言一样用“空椅子”法:

1 >>> prize = ['特等奖','一等奖','二等奖','三等奖','阳光普照','没中奖']
2 >>> temp = prize[1]
3 >>> prize[1] = prize[2]
4 >>> prize[2] = temp
5 >>> prize
6 ['特等奖', '二等奖', '一等奖', '三等奖', '阳光普照', '没中奖']

  这种方法各个语言通用,但是python又更简洁的做法:

1 >>> prize = ['特等奖','一等奖','二等奖','三等奖','阳光普照','没中奖']
2 >>> prize[1], prize[2] = prize[2], prize[1]
3 >>> prize
4 ['特等奖', '二等奖', '一等奖', '三等奖', '阳光普照', '没中奖']

  随机抽取

  抽奖的时候需要随机获取,需要引入random并调用choice()函数:

 1 >>> prize = ['特等奖','一等奖','二等奖','三等奖','阳光普照','没中奖']
 2 >>> import random
 3 >>> random.choice(prize)
 4 '没中奖'
 5 >>> random.choice(prize)
 6 '特等奖'
 7 >>> random.choice(prize)
 8 '三等奖'
 9 >>> random.choice(prize)
10 '没中奖'
11 >>> random.choice(prize)
12 '一等奖'
13 >>> random.choice(prize)
14 '没中奖'

  //运气属实拉跨,理论上每个元素概率都是六分之一,但我抽了六次,一半都是不中奖,真捏🐎。。。

posted @ 2022-01-05 16:03  巴拉拉没多少能量  阅读(21)  评论(0编辑  收藏  举报