Python基础(二) 列表简介和操作列表
- 1.什么是列表
- 2.修改、添加和删除元素
- 3.组织列表
- 4.遍历列表
- 5.创建数字列表
- 6.使用列表的一部分
- 7.元组
1.什么是列表
列表由一系列按特定顺序排列的元素组成。可以将任何东西加入列表,其中的元素之间没有任何关系。在Python中,用方括号来表示列表,并用逗号来分隔其中的元素。
如:
mumbers=['wang bo','li da wei','li shuai']
print(mumbers)
for mumber in mumbers:
print(mumber.title())
打印结果是会包括方括号的!
(1)访问列表元素:
列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python即可。
如:
print(mumbers[0].title())
print(mumbers[-1].title())
这时获取的元素,只有该元素,不包括方括号和引号。
索引从0开始,而不是1。而且Python中,提供了特殊语法,可以通过将索引指定为-1,
让Python返回最后一个列表元素。同理-2是返回倒数第二个列表元素。
注意:索引从0开始,从头到尾。 索引从-1开始,从尾到头。 一个是-1,一个是0。
2.修改、添加和删除元素
创建的大多数列表都是动态的,这意味着列表创建后,将随着程序的运行增删元素。
(1)修改列表元素
如:
mumbers[0]='li chuang'
(2)在列表末尾添加元素
如:
mumbers.append('li chuang')
append()方法让动态地创建列表易如反掌。也就是说,以后可以先创建一个空列表,再使用一系列的append()语句添加元素。这种创建列表的方式极其常见,因为经常需要等程序运行后,你才知道用户要在程序中存储哪些数据。为控制用户,可首先创建一个空列表,用于存储用户将要输入的值,然后将用户提供的每个新值附加到列表中。
(3)在列表中插入元素
如:
mumbers.insert(1,'li chuang')
insert()方法可在列表的任何位置添加新元素,也就是说需要指定新元素的索引和值。这种操作会将列表中既有的每个元素都右移一个位置。
(4)删除元素
如:
del mumbers[0]
如果知道要删除的元素在列表中的位置,可使用del语句。但是就只是删除了。
如果这个元素之后还要用,那么就可用以下方式
如:
popped_mumber=mumbers.pop()
方法pop()删除的是列表末尾的元素,并将这个值传到这个变量里,让你能够接着使用它。
实际上,可以使用pop()来删除列表中任何位置的元素,只需要在括号中指定要删除的元素的索引即可。
如:
popped_mumber=mumbers.pop(2)
也就是说如果要从列表删除一个元素,之后不再以任何方式使用它,那就用del语句。如果这个元素删除后,之后还能继续使用它,就使用方法pop()。
有时候,你不知道要删除的元素在列表中的什么位置。那就可以使用方法remove()
如:
mumbers.remove('wang bo')
这个remove()方法只删除第一个指定的值,如果要删除的值,在列表中出现多次,
那就要用循环来判断是否删除了所有这样的值。
3.组织列表
(1)使用方法sort()对列表进行永久性排序:
如:
names.sort() 首字母从小到大排列
names.sort(reverse = True) 首字母从大到小排列
(2)使用函数sorted()对列表进行临时排序:
如:
sorted(names) 首字母从小到大暂时排列
(3)使用方法reverse()对列表进行永久性反转:
如:
names.reverse() 永久修改列表元素的排列顺序。
(4)确定列表的长度:
如:
len(names)
4.遍历列表
这个for循环,对于用于存储列表中每个值的临时变量,可指定任何名称。当然,应该选择描述的有意义的名称。在for循环中,想包含多少行代码都可以。但是不要忘记加缩进!!
(同样的不能缩进不必要的缩进,否则会报错)
如:
pizzas=['potato','chiken','vegetable']
for pizza in pizzas:
print("I like "+pizza+" pizza")
print("I really love pizza!")
(注意for循环的冒号,不要忘了)
5.创建数字列表
列表非常适合用于存储数字集合,而Python提供了很多工具,可帮助我们高效地处理数字列表。
(1)使用函数range():
如:
for value in range(1,5):
print(value)
注意:这里的range()是从指定的第一个数开始,在到达指定的第二个值后停止。因此输出是不包含第二个值的。即这里只会输出1,2,3,4
当然还可以设置步长,如:
for value in range(1,5,2)
print(value)
注意:这里的range()是从指定的第一个数开始,然后不断地按第三个数向上叠加,在到达指定的第二个值后停止。即这里只会输出1,3
(2)使用range()创建数字列表:
如:
numbers=list(range(1,6))
numbers=list(range(2,11,2))
这样一来,用range()几乎能够创建任何需要的数字集。(善用for循环)
例:
squares=[]
for value in range(1,11):
squares.append(value**2)
print(squares)
(3)对数字列表执行简单的统计计算:
如:
min(squares)取出列表的最小值
max(squares)取出列表的最大值
sum(squares)对列表所有数求和
(4)列表解析:将for循环和创建新元素的代码合并成一行,并自动附加新元素。
例:
squares=[value**2 for value in range(1,11)]
print(squares)
6.使用列表的一部分
(1)切片:
如:
squares[1:3]
Python从第一个数字开始,在到达指定的第二个索引前面的元素后停止。
也就是说这里会输出1,2的元素。
如:
squares[:3]
Python从列表头开始,在到达指定的第二个索引前面的元素后停止。
也就是说这里会输出0,1,2的元素。
如:
squares[1:]
Python从第一个数字开始,在到达列表的末尾后停止。
也就是说这里会输出1,2,3…的元素。
如:
squares[-3:]
输出最后三个元素。(-3,-2,-1 到-1结束)
(2)遍历切片:
例:
square=['1','2','3']
for square in squares[:2]:
print(square)
(3)复制列表:
要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引。
例:
my_foods=['pizza','meat']
friend_foods=my_foods[:]
print(my_foods)
print(friend_foods)
这里一定要用切片的方式,不能直接用等号,否则会报错。
7.元组
列表适合用于存储在程序运行期间可能变化的数据集。列表是可以修改的,这对处理网站的用户列表或游戏中的角色列表至关重要。然而,有时候你需要创建一系列不可修改的元素,元组就可以满足这种需求。Python将这种不能修改的列表称为元组。
(1)定义元组:
如:
dimensions=(200,50)
注意:元组使用圆括号而不是方括号,与列表当然不同。定义元组之后,就可以用索引来访问其中的元素了。
(2)遍历元组:
如:
for dimension in dimensions:
print(dimension)
(3)修改元组变量:
虽然不能修改元组的元素,但可以给存储元组的变量赋值。也就是说,若要修改值,就需要重新定义整个元组。