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)修改元组变量:

虽然不能修改元组的元素,但可以给存储元组的变量赋值。也就是说,若要修改值,就需要重新定义整个元组。