Python编程:从入门到实践(学习笔记-Charpter3)

Python编程:从入门到实践(学习笔记-Charpter3)

五月 18, 2019

Chapter 3 : 列表简介

3.1命名方式

给列表命名为复数名称(如letters、digits或names)

1
2
bicycles = ['track', 'cannondale', 'redline', 'specialized']
names = ['Tony', 'Jack', 'Tom', 'Wiseer']

3.2访问列表:

索引从0而不是从1开始

1
2
3
4
5
6
7
8
9
10
11
bicycles = ['track', 'cannondale', 'redline', 'specialized']
names = ['Tony', 'Jack', 'Tom', 'Wiseer']

#访问bicycles中的第二个元素,则索引应该是3
print(bicycles[3])

#访问names中的第一个元素,则索引应该是0
print(names[0])

#将bicycles列表中的第一个名字的首字母大写并打印出来
print(bicycles[0].title())

3.3使用列表中的多个值

给每一个好友发送一条问候

1
2
3
names = ['Tony', 'Jack', 'Tom', 'Wiseer']
for i in names:
print(i + ','+ " how are you?")

结果:

1
2
3
4
5
6
7
8
9
>>> names = ['yingzi', 'jack', 'Tony', 'marry', 'floder']
>>> for i in names:
... print(i + ','+ " how are you?")
...
yingzi, how are you?
jack, how are you?
Tony, how are you?
marry, how are you?
floder, how are you?

3.4修改、添加和删除元素

修改

要修改列表元素,可指定列表和要修改的元素的索引,在指定该元素的新值。

1
2
3
bicycles = ['track', 'cannondale', 'redline', 'specialized']
#将第一个元素‘track’ 修改为 'doucati'
bicycles[0] = 'doucati'
添加:
  • 末尾添加新元素: bicycles.append('honda') append( )
  • 中间添加新元素: bicycles.insert('honda') insert(0,'值' )
删除:
  • 使用del语句删除元素 (前提是知道元素的位置)
1
2
3
bicycles = ['track', 'cannondale', 'redline', 'specialized']
#删除bicycles中的位于索引1的元素
del bicycles[1]
  • 使用pop() 删除列表末尾元素 (删除后,并能够接着使用它)
1
2
3
4
5
6
7
8
bicycles = ['track', 'cannondale', 'redline', 'specialized']
popped_bicycles = bicycles.pop()
last_owned = bicycles.pop()

#使用方法pop()打印出最后购买的出自行车的款型
print("The last bicycle I owned was a " + last_owned.title() + ".")
#余下的列表中自行车的款型
print(popped_bicycles)
  • 使用pop( )删除列表中任何位置的元素
1
2
3
4
5
bicycles = ['track', 'cannondale', 'redline', 'specialized']
#删除第一次购买的自行车的款型
first_owned = bicycles.pop(0)
#并返回第一次购买的自行车的款型名称
print('The first bicycle I owned was a' + first_owned.title() + '.')
  • 根据值删除元素 remove( ) (只知道要删除的元素的值不知道位置互补del语句)
1
2
3
4
5
6
bicycles = ['track', 'cannondale', 'redline', 'specialized']
#要删除值为'cannondale'的元素
bicycles.remove('cannondale')
#remove从列表中删除元素时,也可以接着使用它的值
too_expensive = 'cannondale'
bicycles.remove('cannondale') #或者写成 bicycles.remove(too_expensive)

remove()只删除第一个指定的值,如果删除多个值,需要使用循环来判断是否删除了所有这样的值

关于删除

  1. 每当你使用pop()时,被弹出的元素就不再在列表中了;
  2. 如过你要从列表中删除一个元素并且不在使用它,选择del 语句 ;
  3. 如果你要在删除的元素后还能继续使用它,选择pop()

3.5组织列表

排序

有时候,你希望保留列表最初的排列顺序,而有时,又需要调整排列顺序

  • sort( ) 对列表进行永久性排序 (a,b,c,d,e,f,……)
1
2
3
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort()
print(cars)
1
2
>>> print(cars)
['audi', 'bmw', 'subaru', 'toyota']

#反向排序 sort( reverse = true )

1
2
3
4
5
6
7
8
cars = ['bmw', 'audi', 'toyota', 'subaru']
#反向排序
cars.sort(reverse = true)
print(cars)
------------
>>> cars.sort(reverse = True)
>>> print(cars)
['toyota', 'subaru', 'bmw', 'audi']
  • sorted() 队列表进行临时排序

    保留列表元素原来的排序方式,同时以特定的顺序呈现它们 (反向排序 sorted( reverse = true ) )

1
2
3
4
5
6
7
8
9
cars = ['bmw', 'audi', 'toyota', 'subaru']
print("this is the original list:")
print(cars)
#临时改变顺序
print("this is the sorted list:")
print(sorted(cars))
#原来默认顺序并没有改变
print("this is the original list again:")
print(cars)

reverse( ) 倒着打印列表永久性的改变

1
2
3
4
cars = ['bmw', 'audi', 'toyota', 'subaru']
#反向排序
cars.reverse()
print(cars)

注:相反排序只是反转列表元素的排列顺序,恢复到原来的排列顺序可以对列表再次调用reverse( )即可

长度
  • len( ) 获取列表的长度
1
2
3
4
5
6
cars = ['bmw', 'audi', 'toyota', 'subaru']
len(cars)
print(len(cars))
------------------
>>> print(len(cars))
4

注: 计算列表元素个数时从 1 开始,因此确定列表长度时,你应该不会遇到差一错误。

3.6使用列表时避免索引错误

  • 注意索引是从0开始的,而不是从1开始,尝试减一重新运行程序看看结果
  • 索引 -1总是返回最后一个列表元素,这个方便查看现在的列表是不是你认为的那个值

小结:在发生索引错误却找不到解决办法时,请尝试将列表或其长度打印出来,列表可能与你以为的截然不同,在程序对其进行了动态处理尤其如此。通过查看列表或其包含的元素数,可帮助你找出这种逻辑错误。