《Python编程:从入门到实践(第二版)》自学笔记(二)

一、列表的排序

对列表中的元素进行排序,如果想永久性排序,无法恢复到原先的序列的话,可以使用方法.sort( )

1
2
3
4
cars = ['bmw', 'audi', 'toyota', 'subaru'] 
cars.sort()
print(cars)
输出:['audi', 'bmw', 'subaru', 'toyota']

上面 正的排序,也可以进行反的排序,只要在括号中,传递参数reverse = True 即可

1
2
3
4
cars = ['bmw', 'audi', 'toyota', 'subaru'] 
cars.sort(reverse=True)
print(cars)
输出:['toyota', 'subaru', 'bmw', 'audi']

如果需要对列表进行临时性的排序,也可以使用函数sorted( ),此函数不会影响元素原先在列表中的排序

1
2
3
cars = ['bmw', 'audi', 'toyota', 'subaru'] 
print(sorted(cars))
输出:['audi', 'bmw', 'subaru', 'toyota']

同样的,上面是正的排序,也可以进行反的排序,括号中传递参数reverse = True 即可

1
2
3
want_place = ['masaladi','hanbougo','adruse','youhu']
print(sorted(want_place,reverse = True))
输出:['youhu', 'masaladi', 'hanbougo', 'adruse']

如果仅仅想让列表中的元素倒过来排序,可以使用方法.reverse( )去实现,此方法对列表的排序也是永久的,但不过好处是双次使用后,即可恢复到原先的元素排序

1
2
3
4
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.reverse()
print(cars)
输出:['subaru', 'toyota', 'audi', 'bmw']

二、数值列表

有时我们需要快速的去造数,可以使用函数rang( )去实现,但需要注意的是:括号中的区间和索引一样都是包头不包尾

1
2
3
4
5
6
7
for value in range(1, 5):
print(value)
输出:
1
2
3
4

这只是我们输出出来的数,如果要将这些数,放入一个列表中,需要使用到函数list( )去进行转换

1
2
3
numbers = list(range(1, 6)) 
print(numbers)
输出:[1, 2, 3, 4, 5]

有时看到一些资料中,还会在括号中加入第三个数,我们把这第三个数,称作为步长,通俗一点讲,就是两个相邻的数,中间间隔几,这个几就是步长

1
2
3
even_numbers = list(range(2, 11, 2)) 
print(even_numbers)
输出:[2, 4, 6, 8, 10]

当需要将数成次方倍的翻时,常用两个 ** 去实现,以2次方举例

1
2
3
4
5
6
squares = []
for value in range(1, 11):
square = value ** 2
squares.append(square)
print(squares)
输出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

为使得代码简洁化,后期熟练时可直接省去中间新变量square

1
2
3
4
5
squares = [] 
for value in range(1,11):
squares.append(value**2)
print(squares)
输出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

同时在Python中,有几个专门用于处理数字列表的Python函数。例如,你可以轻松地找出数字列表的最大值、最小值和总和

1
2
3
4
5
6
7
8
9
digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
min(digits)
max(digits)
sum(digits)
输出:
0
9
45

后期在阅读别人代码时,可能会遇到列表解析,这里简单提一嘴,要使用这种语法,首先指定一个描述性的列表名,如squares。然后,指定一个左方括号,并定义一个表达式,用于生成要存储到列表中的值。在这个示例中,表达式为value**2,它计算平方值。接下来,编 写一个for循环,用于给表达式提供值,再加上右方括号,需要注意的是:这里的for后面时候没有冒号的

1
2
3
squares = [value**2 for value in range(1, 11)] 
print(squares)
输出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2019-2024 Carrol Chen
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信