列表是什么
列表是有一系列按特定顺序排列的元素组成。你可以创建包含字母表中所有字母、数字0~9或所有家庭成员姓名的列表;也可以将任何东西加入列表中,其中的元素之间可以没有任何关系
在Python中用方括号表示列表([]),并使用逗号分割其中的元素。
- 列表
>>> lists = ['1', '2', '3']
>>> print(lists)
['1', '2', '3']
- 访问列表元素
列表是有序集合,因此要访问列表的任何元素,只需要将该元素的位置或索引告诉python即可。
例:
>>> test = ['a', 'b', 'c', 'd']
>>> print(test)
['a', 'b', 'c', 'd']
若只想显示某一个元素,可以使用索引显示某一个元素,还可以结合字符串的各种改变方法
>>> print(test[0].title())
A
- 索引从0而不是1开始
在python中第一个列表元素的索引为0,而不是1.在大多数编程语言都是如此,这与列表操作的底层实现相关。如果结果出乎意料看看是不是没有从0开始。
>>> print(test)
['a', 'b', 'c', 'd']
>>> print(test[1])
b
Python为最后一个列表元素提供了一种特殊语法。通过将索引指为-1就是倒数第一个元素,-2就是倒数第二个,以此类推。
>>> print(test[-1])
d
- 使用列表中的各个值
可像使用其他变量一样使用列表的各个值。
>>> print("英文字母第四个为" + test[-1].title() + "。")
英文字母第四个为D。
- 修改、添加和删除元素
- 修改
修改列表元素的语法与访问列表元素的语法类似。要需改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值。
>>> print(test)
['a', 'b', 'c', 'd']
>>> test[0] = "A"
>>> print(test)
['A', 'b', 'c', 'd']
-
在列表末尾添加元素
在列表的末尾添加新元素-使用方法:列表名.append(‘元素名’)
在列表中添加新元素时,最简单的方式是将元素附加到列表的末尾。给列表附加元素时,他将添加到列表的末尾。
>>> print(test)
['A', 'b', 'c', 'd']
>>> test.append("e")
>>> print(test)
['A', 'b', 'c', 'd', 'e']
- 在列表中添加元素
在列表中添加元素使用方法:列表名.insert(索引值,‘元素名’)
>>> print(test)
['A', 'b', 'c', 'd', 'e']
>>> test.insert(0, "a")
>>> print(test)
['a', 'A', 'b', 'c', 'd', 'e']
- 从列表中删除元素
1.使用del语句删除元素
如果知道要删除元素在列表中的位置,可以使用del语句。
>>> print(test)
['a', 'A', 'b', 'c', 'd', 'e']
>>> del test[1]
>>> print(test)
['a', 'b', 'c', 'd', 'e']
2.使用方法pop()删除元素
方法pop()可删除列表末尾的元素,并让你能够接着使用它。术语弹出(pop)源自这样的类比:列表就像一个栈,而删除列表末尾的元素相当于弹出栈顶元素。
使用方法:列表名.pop()
>>> print(test)
['a', 'b', 'c', 'd', 'e']
>>> poped_test = test.pop()
>>> print(poped_test)
d
>>> print(test)
['a', 'b', 'c']
首先打印了列表test,接下来,从这个列表中弹出了最后一个值,并将其储存到变量poped_test中,然后打印弹出的值。最后打印这个列表,核实是否从其中删除了最后一个值,以证明我们依然能够访问被删除的值。
3.弹出列表中任何位置的元素
实际上可以使用pop()来删除列表中任何位置的元素,只需要在括号中指定要删除的元素索引即可。
>>> print(test)
['a', 'b', 'c']
>>> poped_test1 = test.pop(1)
>>> print(poped_test1)
b
>>> print(test)
['a', 'c']
注意:,每当使用pop()时,被弹出的元素就不在列表中了。
如果不确定该使用pop()方法还是del语句,下面是一个简单的判断标准:如果你要从列表中删除一个元素,且不再以任何方式使用它,可以使用del语句,如果你要再删除元素后还能够继续使用,就使用pop()方法。
4.根据值删除元素
有时候,你不知道要从列表中删除的值所处的位置。如果你只知道要删除的元素的值,可以使用方法:remove()。
>>> print(test)
['a', 'c']
>>> test.remove("a")
>>> print(test)
['c']
注意:方法remove()只删除第一个指定的值。如果要删除的值在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。
- 组织列表
在创建列表中,元素的排序往往是无法预测的,因为你并非总能控制用户提供的数据的顺序。这虽然在大多数情况下都是不可避免的,但你经常需要以特定的顺序呈现信息。Python提供了很多组织列表的方式,可以个根据情况选用。
1.使用方法sort()对列表进项永久性排序
默认sort()方法排序方式是按字母顺序排列的
>>> print(test)
['g', 'f', 'a', 'v', 'd', 'b']
>>> test.sort()
>>> print(test)
['a', 'b', 'd', 'f', 'g', 'v']
还可以按字母相反的顺序排列列表元素,只需要向sort()方法传递参数reverse=True。同样修改是永久性的。
>>> print(test)
['a', 'b', 'd', 'f', 'g', 'v']
>>> test.sort(reverse=True)
>>> print(test)
['v', 'g', 'f', 'd', 'b', 'a']
2.使用函数sorted()对列表进行临时排序
要保留列表原来的排列顺序,同时以特定的顺序呈现它们,它使用函数sorted()。函数sorted()让你能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。
>>> print(test)
['b', 'a', 'c', 'e', 'z']
>>> print(sorted(test))
['a', 'b', 'c', 'e', 'z']
>>> print(test)
['b', 'a', 'c', 'e', 'z']
注意:调用函数sorted()后,列表元素的排列顺序并没有改变。如果你要按字母顺序相反的顺序显示列表,也可以向函数sorted()传递参数reverse=True。
在并非所有字母都是小写时,按字母排列列表要复杂些。
3.倒着打印列表-方法reverse()
要反转列表元素的排列顺序,可以使用方法reverse()。
>>> print(test)
['b', 'a', 'c', 'e', 'z']
>>> test.reverse()
>>> print(test)
['z', 'e', 'c', 'a', 'b']
方法reverse()不是指按与字母顺序相反的顺序排列列表元素,而是反转列表元素的排列顺序。方法reverse()永久性的修改列表元素的排列顺序,但可以随时恢复到原来的排列顺序,再次对列表调用reverse()方法即可。
4.确定列表的长度
使用函数len()可以快速的获悉列表的长度。
>>> print(test)
['z', 'e', 'c', 'a', 'b']
>>> len(test)
5
注意:Python计算列表元素时从1开始,因此确定列表长度时,要注意。