Python编程:从入门到实践(四)

操作列表

一、遍历整个列表

使用for循环来打印魔术师名单中的所有名字:

首先我们定义一个列表。接下来,我们定义了一个for循环;这行代码让Python从列表magicians中取出一个名字,并将其存储在变量magician中。最后,我们 让Python打印前面存储到变量magician中的名字。

magicians = ['alice', 'david', 'carolina'] 
for magician in magicians:
    print(magician)

输出:

alice
david
carolina

注意:
1、避免缩进错误
2、避免出现不必要的缩进
3、不要忘记for后的冒号

二、创建数值列表

  • 使用函数range()
for value in range(1,6):
    print(value)

输出:

1
2
3
4
5
  • 使用range()创建数字列表

要创建数字列表,可使用函数list()将range()的结果直接转换为列表:

numbers=list(range(1,6))
print(numbers)

输出:

[1, 2, 3, 4, 5]

使用函数range()时,还可指定步长:

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

输出:

[2, 4, 6, 8, 10]

如何将前10个整数的平方加入到一个列表中:

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

输出:

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
  • 对数字列表执行简单的统计计算
digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] 
print(min(digits))
# 0
print(max(digits))
# 9
print(sum(digits))
# 45
  • 列表解析
squares = [value**2 for value in range(1,11)] print(squares)

这里的for语句末尾没有冒号。
要创建自己的列表解析,需要经过一定的练习,但能够熟练地创建常规列表后,会发现这样做是完全值得的。当觉得编写三四行代码来生成列表有点繁复时,就应考虑创建列表解析了。

扫描二维码关注公众号,回复: 8992245 查看本文章

三、使用列表的一部分

切片
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[0:3])
#['charles', 'martina', 'michael']
print(players[2:])
#['michael', 'florence', 'eli']
print(players[:2])
#['charles', 'martina']
print(players[-2:])
#['florence', 'eli']
遍历切片
players = ['charles', 'martina', 'michael', 'florence', 'eli']
for player in players[:3]:
    print(player)

输出:

charles
martina
michael
复制列表

复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:])。 这让Python创建一个始于第一个元素,终止于最后一个元素的切片,即复制整个列表。

my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:]
my_foods.append('cannoli')
friend_foods.append('ice cream')
print("My favorite foods are:") 
print(my_foods)
print("\nMy friend's favorite foods are:") 
print(friend_foods)

输出:

My favorite foods are:
['pizza', 'falafel', 'carrot cake', 'cannoli']

My friend's favorite foods are:
['pizza', 'falafel', 'carrot cake', 'ice cream']

如果只是简单地将 my_foods赋给friend_foods

my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods #错误的示例
my_foods.append('cannoli') 
friend_foods.append('ice cream')
print("\nMy favorite foods are:") 
print(my_foods)
print("\nMy friend's favorite foods are:") 
print(friend_foods)

输出:

My favorite foods are:
['pizza', 'falafel', 'carrot cake', 'cannoli', 'ice cream']

My friend's favorite foods are:
['pizza', 'falafel', 'carrot cake', 'cannoli', 'ice cream']

这里将my_foods赋给friend_foods,而不是将my_foods的副本存储到friend_foods。 这种语法实际上是让Python将新变量friend_foods关联到包含在my_foods中的列表,因此这两个 变量都指向同一个列表。鉴于此,当我们将’cannoli’添加到my_foods中时,它也将出现在 friend_foods中;同样,虽然’ice cream’好像只被加入到了friend_foods中,但它也将出现在这 两个列表中。

四、元组

定义元组

元组看起来犹如列表,但使用圆括号而不是方括号来标识。定义元组后,就可以使用索引来访问其元素,就像访问列表元素一样。

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

输出:

200
50

注意:
试图修改元组的操作是被禁止的,因此Python指出不能给元组的元素赋值。

遍历元组中的所有值

像列表一样,也可以使用for循环来遍历元组中的所有值

dimensions = (200, 50)
for dimension in dimensions:
print(dimension)

输出:

200
50
修改元祖变量

虽然不能修改元组的元素,但可以给存储元组的变量赋值。因此,如果要修改前述矩形的尺寸,可重新定义整个元组:

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

输出:

Original dimensions:
200
50

Modified dimensions:
400
100

相比于列表,元组是更简单的数据结构。如果需要存储的一组值在程序的整个生命周期内都不变,可使用元组。

一部分练习题

# 4-3 数到20
for number in range(1,21):
    print(number)
# 4-4 一百万
for number in list(range(1,100)):
    print(number)
# 4-5 计算 1~1 000 000 的总和
numbers=list(range(1,1000001))
print(min(numbers))
print(max(numbers))
print(sum(numbers))
# 4-6 奇数
for number in range(1,21,2):
    print(number)
# 4-7 3的倍数
for number in range(3,31,3):
    print(number)
# 4-8 立方
squares=[]
for value in range(1,11):
    squares.append(value**3);
print(squares)
# 4-9 立方解析
squares=[value**3 for value in range(1,11)]
print(squares)
发布了22 篇原创文章 · 获赞 0 · 访问量 620

猜你喜欢

转载自blog.csdn.net/weixin_45237889/article/details/103981018