List列表
列表是Python最常用的数据类型,它以一个方括号,里面用逗号分隔数据项的形式出现。
list1 = ['ıu uɐnɥ ıx oɐɥ oM']
list2 = [2020, '武汉加油', 'Go China!']
列表里的数据项不需要具有相同的类型。
向列表增加元素
- 使用append() 方法,用于在列表末尾添加新的元素或列表元素。
append()方法语法: list.append( )
添加元素:
>>> list1 = ['ıu uɐnɥ ıx oɐɥ oM']
>>> list1.append('小笨蛋,屏幕倒过来看!')
>>> list1
['ıu uɐnɥ ıx oɐɥ oM', '小笨蛋,屏幕倒过来看!']
>>> list1 = ['ıu uɐnɥ ıx oɐɥ oM']
>>> list3 = '小笨蛋,屏幕倒过来看!'
>>> list1.append(list3)
>>> list1
['ıu uɐnɥ ıx oɐɥ oM', '小笨蛋,屏幕倒过来看!']
添加列表:
>>> list1 = ['ıu uɐnɥ ıx oɐɥ oM']
>>> list1.append(['小笨蛋,屏幕倒过来看!'])
>>> list1
['ıu uɐnɥ ıx oɐɥ oM', ['小笨蛋,屏幕倒过来看!']]
>>> list1 = ['ıu uɐnɥ ıx oɐɥ oM']
>>> list3 = ['小笨蛋,屏幕倒过来看!']
>>> list1.append(list3)
>>> list1
['ıu uɐnɥ ıx oɐɥ oM', ['小笨蛋,屏幕倒过来看!']]
注意:使用append方法只能同时添加一个元素。
下面给大家介绍一个可以同时添加多个元素的方法。
- 使用extend() 方法,用于在列表末尾追加另一个列表中的元素或用新列表扩展原来的列表。
extend()方法语法:list.extend( )
>>> list3 = ['万物更新','旧疾当愈']
>>> list4 = ['长安常安','万事胜意']
>>> list3.extend(list4)
>>> list3
['万物更新','旧疾当愈','长安常安','万事胜意']
>>> list3 = ['万物更新','旧疾当愈']
>>> list3.extend(['长安常安','万事胜意'])
>>> list3
['万物更新','旧疾当愈','长安常安','万事胜意']
append方法与extend方法的区别:添加列表时,在列表内生成的是列表还是元素,既有无[ ]中括号。
但是不管是append方法还是extend方法,都是把元素添加到列表末尾,要是我想把元素添加在第一位或者第二位或者任意位呢?
- 使用insert() 方法,用于在列表的任意位置插入元素或列表。
insert()方法语法:list.insert(位置,元素 )
>>> list2 = [2020, '武汉加油', 'Go China!']
>>> list2.insert(0,'Hello')
>>> list2
['Hello', 2020, '武汉加油', 'Go China!']
注意:在Python列表中,位置的索引值由0开始,既第一位是0,第二位是1,第三位是2……以此类推。
或者插入列表:
>>> list2 = [2020, '武汉加油', 'Go China!']
>>> list3 = ['Hello']
>>> list2.insert(0,list3)
>>> list2
[['Hello'], 2020, '武汉加油', 'Go China!']
>>> list2 = [2020, '武汉加油', 'Go China!']
>>> list2.insert(0,['Hello'])
>>> list2
[['Hello'], 2020, '武汉加油', 'Go China!']
insert方法的位置参数还支持负数(与列表末尾的相对距离):
>>> list2 = [2020, '武汉加油', 'Go China!']
>>> list2.insert(-1,'Go WuHan')
>>> list2
[2020, '武汉加油','Go WuHan', 'Go China!']
从列表获取元素
在Python中我们可以直接通过索引值来获取列表内的元素。
>>> list3 = ['万物更新','旧疾当愈','长安常安','万事胜意']
>>> list3 [2]
'长安常安'
索引值支持负数(反向索引)。
>>> list3 = ['万物更新','旧疾当愈','长安常安','万事胜意']
>>> list3[-1]
'万事胜意'
对列表元素位置进行调换:
把list3的旧疾当愈与长安常安的位置进行调换。
>>> list3 = ['万物更新','旧疾当愈','长安常安','万事胜意']
>>> temp = list3[1]
>>> list3[1] = list3[2]
>>> list3[2] = temp
>>> list3
['万物更新', '长安常安', '旧疾当愈', '万事胜意']
我们这里用了一个临时变量temp对列表元素进行调换,但是Python有更简便的方式来实现:
>>> list3 = ['万物更新','旧疾当愈','长安常安','万事胜意']
>>> list3[1],list3[2] = list3[2],list3[1]
>>> list3
['万物更新', '长安常安', '旧疾当愈', '万事胜意']
当列表中包含另一个列表,要获取子列表内元素,可以使用两次索引。
>>> list3 = ['万物更新',['旧疾当愈','长安常安'],'万事胜意']
>>> list3[1][1]
'长安常安'
从列表删除元素
- 使用remove() 方法,用于在列表删除一个指定元素。
remove()方法语法: list.remove( )
>>> Bye = ['ManBa Out','ManBa Forver']
>>> Bye.remove('ManBa Out')
>>> Bye
['ManBa Forver']
使用remove方法不需要知道元素位置,但如果元素不存在于列表,程序就会报错。
- 使用pop() 方法,用于在列表中将指定位置元素删除。
pop()方法语法: list.pop( )
>>> Bye = ['ManBa Out','ManBa Forver']
>>> Bye.pop(0)
'ManBa Out'
>>> Bye
['ManBa Forver']
- 使用del() 语句,用于在列表中将指定位置元素删除。
注意:del是一个Python语句,而不是列表方法和BIF。
>>> Bye = ['ManBa Out','ManBa Forver']
>>> del Bye[0]
>>> Bye
['ManBa Forver']
del语句不但可以删除列表中元素,还可以直接删除变量:
>>> Bye = ['ManBa Out','ManBa Forver']
>>> del Bye
>>> Bye
Traceback (most recent call last):
File "<pyshell#21>", line 1, in <module>
Bye
NameError: name 'Bye' is not defined
由于整个Bye变量被del删除了,所以引用时Python由于找不到该变量而报错。
列表切片
切片方法就是根据索引取列表中的数据,切片并不会改变原列表。
切片方法使用一个冒号隔开两个索引值。
>>> Cs = ['Galil AR','SG 553','AUG','M4A4','AWP']
>>> Go = Cs[1:5]
>>> Go
['SG 553', 'AUG', 'M4A4', 'AWP']
切片方法语法:[起始值:终止值:步长]
>>> Cs = ['Galil AR','SG 553','AUG','M4A4','AWP']
>>> Cs[:2]
['Galil AR', 'SG 553']
>>> Cs[2:]
['AUG', 'M4A4', 'AWP']
如果省略起始值,Python则从0位置开始;如果要得到指定位置到末尾的元素,把终止值省去即可;如果省略起始值与终止值,Python则会返回列表的拷贝件。
>>> Cs = ['Galil AR','SG 553','AUG','M4A4','AWP']
>>> Cs[::2]
['Galil AR', 'AUG', 'AWP']
>>> Cs[::-1]
['AWP', 'M4A4', 'AUG', 'SG 553', 'Galil AR']
如果将步长设置为负数,则相对于把列表进行翻转。
其他列表方法:
在Python中,我们可以利用dir函数对方法进行查询。
dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。
>>> 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']
我的博客里还有更多有关Python的基础知识,欢迎大家互相讨论学习。
【Kobe Bryant NBA科比追悼会现场】