python课整理 2021.09.15

  • 时间:
  • 浏览:
  • 来源:互联网

今天主要讲的是容器类型,常用的五种:字符串容器(之前讲过,就不讲了),列表,元组,集合,字典

for else,for in,排序,len,if in,列表可读写,set不能

先讲下循环语句

for

for…in语句,通常是遍历那些容器类型还有range()之类的。

for i in range(10):
    print(i,end = " ")
print()
num_list = ["我","在","学","python"]
for i in num_list:
    print(i,end=" ")

输出结果:

0 1 2 3 4 5 6 7 8 9 
我 在 学 python 

好像也没什么要点,只要注意到in后面的变量一定是可迭代的就行。

for…else…语句,在java、C中并没有出现。

表示意思是当for循环正常结束时,就会触发else语句。

例子

for i in range(10):
    print(i,end=' ')
    i-=1
    if i == 3:
        break;
else:
    print("循环结束....")
print("已经退出循环。。。")

输出结果:

0 1 2 3 4 已经退出循环。。。

上面例子是当i等于3的时候,break退出,这样并不会触发else语句

for i in range(10):
    print(i,end=' ')
    i-=1
#     if i == 3:
#         break;
else:
    print("循环结束....")
print("已经退出循环。。。")

输出结果:

0 1 2 3 4 5 6 7 8 9 循环结束....
已经退出循环。。。

当把if语句去除掉的时候,即for循环正常执行到结束,则触发了else语句,于是产生了输出

散的知识点(排序,len)

排序

主要讲解一下列表的排序

查看列表排序的文档

nums_list.sort?
Signature: nums_list.sort(*, key=None, reverse=False)
Docstring: Stable sort *IN PLACE*.
Type:      builtin_function_or_method
    
key表示关键字排序
reverse表示是升序还是降序。
reverse=false是升序,reverse=true是降序。

常用的:

nums_list = [123,486,0,465,125,659,315]
nums_list.sort()
print(nums_list)
nums_list.sort(reverse=True)
print(nums_list)

输出结果:

[0, 123, 125, 315, 465, 486, 659][659, 486, 465, 315, 125, 123, 0]

难一点的一般是要二维排序,又或者是结构体排序。这个时候一般要用到key了。

student_tuples = [        ('john', 'A', 15),        ('jane', 'B', 12),        ('dave', 'B', 10),]sorted(student_tuples, key=lambda student: student[2])   # sort by age#这里使用的函数式编程,也叫lambda式编程,有机会我再详细讲讲,这里主要意思是根据student[2]来升序排列print(student_tuples)

输出结果:

[('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]

我记得java还有先根据主关键字排序,再根据次关键字排序的,不知道python有没有,这里先挖个坑,有时间再补(

上课老师还讲少了另一种方式的排序,在这里补充下,那就是sorted()

sorted的主要优势是它可以接受任何可迭代对象,而list.sort()只能接受列表

sorted?Signature: sorted(iterable, /, *, key=None, reverse=False)Docstring:Return a new list containing all items from the iterable in ascending order.A custom key function can be supplied to customize the sort order, and thereverse flag can be set to request the result in descending order.Type:      builtin_function_or_method

我们可以清楚的看到,他们之间其实是很类似的。

nums_list = [123,486,0,465,125,659,315]# nums_list.sort()# print(nums_list)# nums_list.sort(reverse=True)# print(nums_list)print(sorted(nums_list))# print(nums_list)

输出结果:

[0, 123, 125, 315, 465, 486, 659]
这里还有个细节要讲一下,就是使用list.sort()的时候,返回的是None,所以我们不用去接收,直接输出原变量即可但是sorted()则不是。它接收的是一个对象,然后返回拍完序的对象,所以我们需要有个变量接收它,即a = sorted(list),或直接输出即可

Operator 模块函数(有时间再开坑)

len

len()函数主要就是计算长度的,没啥好说的。

nums_list = [123,486,0,465,125,659,315]print(len(nums_list))

输出结果:

7

容器类型

列表,元组,集合,字典

列表

主要讲解一下列表的有关函数,下面列举比较常用的,还有其它的函数,可以自己去了解

#插入删除函数my_list = [1,2,3]#append在尾部插入元素my_list.append(4)print(my_list)                #[1,2,3,4]#insert 在指定位置插入my_list.insert(2,1)            print(my_list)                #[1,2,1,3,4]#pop 用于位置删除,默认删除最后一个元素my_list.pop()                print(my_list)                #[1,2,1,3]my_list.pop(3)                print(my_list)                #[1,2,1]#remove 根据值删除,默认删除第一个出现的值my_list.remove(1)             print(my_list)                #[2,1]#clear 清空my_list.clear()print('列表长度:',len(my_list))     #列表长度:0

输出结果:

[1, 2, 3, 4][1, 2, 1, 3, 4][1, 2, 1, 3][1, 2, 1][2, 1]列表长度: 0

元组

元组也是序列,只是不能修改。语法也简单,加个逗号就可以变元祖。圆括号反倒无关紧要。逗号至关重要!有无逗号就是计算机识别是否为元组的依据。

昂~元组并不常用,这里就不详细讲了

集合(set)

集合是由不同元素组成的合集。我们知道集合是无序的,这里还有个唯一性。

a = [1,2,2,3,3,4,4]set_a = set(a)print(set_a)

输出结果:

{1, 2, 3, 4}

字典

现在聊一点很有趣的东西,你们可以猜猜类型是什么,可以自己复制去试试,这里我就不放结果了

num1 = [1]print(type(num1))num2 = (1)print(type(num2))num3 = (1,)print(type(nums))num4 = (1,2)print(type(num4))

本文链接http://metronic.net.cn/metronic/show-53473.html