操作列表

我们在上一篇博客中已经知道如何访问列表的元素,现在我们可以了解到如何遍历列表等一些操作列表的操作

1. 列表的遍历

使用for循环遍历列表

names = ["小梦","小黑","小白","小欧"]
for name in names  :
 print(name+", 有10000万????")

 输出

小梦, 有10000万????
小黑, 有10000万????
小白, 有10000万????
小欧, 有10000万????

这样遍历可以遍历成千上万的元素。在代码上作出这样的添加就会输出不同的效果

names = ["小梦","小黑","小白","小欧"]
for name in names  :
  print(name+", 有10000万????")
  print("不是吧??")

print("小梦有!!!")

 输出:

这样的结果是由于代码缩进原因。

当我们在不该缩进的地方缩进

eg

运行会有这样的报错

  File "C:/Users/20253/PycharmProjects/myPython/liebiao.py", line 2
    for name in names  :
    ^
IndentationError: unexpected indent    ===== 缩进错误:意外缩进

当我们在需要缩进的时候没有缩进

就会有这样的报错

  File "C:/Users/20253/PycharmProjects/myPython/liebiao.py", line 3
    print(name+", 有10000万????")
        ^
IndentationError: expected an indented block      ====缩进错误:需要缩进块

2. 创建数值列表

2.1 使用range()打印出数字1-4

for value range(1,5) :
 print(value)

输出:

1
2
3
4

2.2  使用range()创建数字列表

可以使用list()函数将range()的结果转为列表

将range()作为list()的参数

numbers = list(range(1,5))

print (numbers)

输出

[1, 2, 3, 4]

代码打印 1-10 的偶数

numbers = list(range(2,11,2))
print (numbers)

在这个示例中,函数range()从2开始数,然后不断地加2,直到达到或超过终值(11),因此

输出

[2, 4, 6, 8, 10]

将1-10的平方添加到一个列表中

squares = []
for value in range(1,11) :
    result = value ** 2
    squares.append(result)
print(squares)

 输出

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

 squares = []
for value in range(1,11) :
    squares.append( value ** 2)
print(squares)

 也可以这样 使代码变得简洁

对数字列表执行简单的统计计算

轻松的找出列表中的最大值  最小值  总和

number = [1,2,3,4,5,6,7,8,9,10]
print(sum(number))
print(min(number))
print(max(number))

 输出

55
1
10

列表解析

前面介绍的生成列表squares的方式包含三四行代码,而列表解析让你只需编写一行代码就能生成这样的列表。

列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素。

squares2 = [value**2 for value in range(1,11)]
print(squares2)

 要使用这种语法,首先指定一个描述性的列表名,如squares2;然后,指定一个左方括号,
并定义一个表达式,用于生成你要存储到列表中的值。在这个示例中,表达式为value**2,它计
算平方值。接下来,编写一个for循环,用于给表达式提供值,再加上右方括号。在这个示例中,

for循环为for value in range(1,11),它将值1~10提供给表达式value**2。请注意,这里的for
语句末尾没有冒号。
结果与前面看到的平方数列表相同:

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

3.  使用列表的一部分

处理列表的部分元素——Python称之为切片

 3.1 切片

要创建切片,可指定要使用的第一个元素和最后一个元素的索引。与函数range()一样,Python
在到达你指定的第二个索引前面的元素后停止。要输出列表中的前三个元素,需要指定索引0~3,
这将输出分别为0、1和2的元素。
下面的示例处理的是一个运动队成员列表:

players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[0:3]) 

输出

['charles', 'martina', 'michael']

 代码打印该列表的一个切片,其中只包含三名队员。输出也是一个列表,其中包含前
三名队员

如果没有指定开始的索引 那么Python自动从列表开头开始

print(players[:2])

输出

['charles', 'martina']

如果想让切片截取到列表的末尾,就省略终止索引

print(players[2:])

输出

['michael', 'florence', 'eli']

如果你要输出名单上的最后两名队员,可使用切片players[-2:]

输出

['florence', 'eli']

3.2  遍历切片

遍历名单前三位队员

for value in players[:3] :
    print(value.title())

 输出

Charles
Martina
Michael

3.3  复制列表

有时候我们需要将列表的全部元素复制到另一个列表中。例如我喜欢吃的零食我闺蜜都喜欢吃。

my_foods = ["可乐","蛋糕","薯条","奶茶","炸鸡"]
print("I like :")
print(my_foods)
friend_foods = my_foods[:]
print("friend like :")
print(friend_foods)

输出

 I like :
['可乐', '蛋糕', '薯条', '奶茶', '炸鸡']
friend like :
['可乐', '蛋糕', '薯条', '奶茶', '炸鸡']

4. 元组

        列表非常适合用于存储在程序运行期间可能变化的数据集。列表是可以修改的,这对处理网
站的用户列表或游戏中的角色列表至关重要。然而,有时候你需要创建一系列不可修改的元素,
元组可以满足这种需求。

4.1  Python将不能修改的值称为不可变的,而不可变的列表被称为元组

元组看起来就像列表 但是元组使用小括号()而不是方括号来标识。定义完元组之后就可以使用索引来访问元组,就像访问列表一样

定义一个长度不会改变的矩形,可以将其长宽保存到元组中,从而确保他们是不可修改的

dimensions = (200,90)
print(dimensions[0])
print(dimensions[1])

 输出

200
90

尝试改变矩形长度的值 

dimensions[0]=250

运行报错

200
90
Traceback (most recent call last):
  File "C:/Users/20253/PycharmProjects/myPython/dimensions.py", line 5, in <module>
    dimensions[0] =250
TypeError: 'tuple' object does not support item assignment   ==类型错误:“tuple”对象不支持项分配

代码试图修改矩形的尺寸时,Python报告错误

4.2 遍历元组的所有值

dimensions = (200,90)
for value in dimensions :
    print(value)

 输出

200
90
4.3 修改元组变量

虽然不能修改元组的元素,但是可以给存储元组的变量赋值

dimensions = (200,90)
print("Original dimensions:")
for dimension in dimensions:
 print(dimension)
dimensions = (400, 100)
print("\nModified dimensions:")
for dimension in dimensions:
 print(dimension)

 我们首先定义了一个元组,并将其存储的尺寸打印了出来 ;接下来,将一个新元组
存储到变量dimensions中;然后,打印新的尺寸 。这次,Python不会报告任何错
误,因为给元组变量赋值是合法的。

输出

Original dimensions:
23
10

Modified dimensions:
400
100

 

posted @ 2019-02-14 15:17  春眠不觉笑  阅读(455)  评论(0编辑  收藏  举报