本文最后更新于:星期五, 八月 28日 2020, 11:56 晚上

04-for循环的各个语句及list列表学习

1. for循环

  • 根据传入的序列进行循环,每次循环都会将序列中的一个元素引出成变量,序列变量完成,循环结束。

  • 格式:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 普通for循环
    for <var> in <seq>: # var为变量,接收每次循环序列引出的元素;seq为序列
    语句1 # 每次循环时执行的语句

    # for-else语句格式:
    for <var> in <seq>:
    语句1
    else:
    语句2 # 当for循环正常结束,执行此语句,不包括break

2. range()函数

  • range函数根据所传参数来生成数列,可以被for循环使用

  • range函数也可以被其他函数调用,如list、tuple等

  • 实例:

    1
    2
    3
    4
    5
    6
    7
    # for 循环调用
    for i in range(-10,10,2): #生成一个从-10开始,步长为2,到10结束的数列,不包括10
    print(i)

    # list函数调用
    In [1]: list(range(10)) # 会生成一个从0到9的列表
    Out[1]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

3. 循环语句中的break、continue、pass

  • break: break语句用于终止当前的while或for循环,而且循环对应的else语句也不会被执行

  • continue: 用于跳过此次循环中后面的所有语句,继续下一轮循环

  • pass: 占位符,在循环中为空语句,不会做任何事,只是为了保证程序的完整性


  • break语句实例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    # 遍历字符串"sense",但只遍历到"n"

    # 1. for 循环
    for i in "sense":
    print(i)
    if i == "n":
    break

    # 2. while 循环
    str1 = "sense"
    index = 0
    while True:
    print(str1[index])
    if str1[index] == "n":
    break
    index += 1

    输出:
    s
    e
    n
  • continue语句实例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    # 1. for循环     # 遍历字符串"sense",但要跳过"n"
    for i in "sense":
    if i == "n":
    continue
    print(i)

    输出:
    s
    e
    s
    e

    # 2. while循环 # 打印1~5,但是不能包括3
    num1 = 0
    while num1 < 5:
    num1 += 1
    if num1 == 3:
    continue
    print(num1)

    输出:
    1
    2
    4
    5
  • pass语句实例

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    for i in "sense":
    if i == "n":
    pass #照常运行,什么事都不做
    print(i)

    输出:
    s
    e
    n
    s
    e

4. list列表

  • 含义:将多个元素放到一个序列中存储;其元素在list中是有序的

  • 特点:每个元素都有下标,方便获取;而且元素可以为不同类型

    1
    2
    3
    4
    5
    6
    7
    """
    创建列表的格式
    格式:列表名 = [列表选项1, 列表选项2, ...., 列表选项n]
    """

    # 创建含有多种数据类型的列表
    [1,"2",[1,2],True]
  • 列表元素访问及二维列表(使用下标方法):

    1
    2
    3
    4
    5
    6
    7
    8
    # 格式:  列表名[下标]
    list1 = [1,2,3]
    list1[1] #取第二个元素

    # 二维列表,取其中的6
    In [1]: twoList = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
    In [2]: twoList[1][2]
    Out[2]: 6
  • 元素的替换:

    1
    2
    3
    4
    5
    # 将列表中的2替换成1
    In [1]: list1 = [1,2,3]
    In [2]: list1[1] = 1
    In [3]: list1
    Out[3]: [1, 1, 3]
  • 列表组合与重复

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # 列表重复
    In [4]: list4 = [1, 2, 3]
    In [5]: list5 = [4, 5, 6]
    In [6]: list6 = list4+list5
    In [7]: list6
    Out[7]: [1, 2, 3, 4, 5, 6]

    # 列表重复
    In [8]: list7 = [1,2,3]
    In [9]: list8 = list7*3
    In [10]: list8
    Out[10]: [1, 2, 3, 1, 2, 3, 1, 2, 3]
  • 成员运算符在列表中的使用及列表截取

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    # 成员运算符的使用
    In [11]: list9 = [1,2,3,4,5]
    In [12]: 2 in list9
    Out[12]: True
    In [13]: 6 not in list9
    Out[13]: True

    # 列表截取,返回的时列表
    In [18]: list10 = [1, 2, 3, 4, 5, 6, 7, 8]
    In [19]: list10[3:6]
    Out[19]: [4, 5, 6]
    In [20]: list10[:]
    Out[20]: [1, 2, 3, 4, 5, 6, 7, 8]
    In [21]: list10[:-1]
    Out[21]: [1, 2, 3, 4, 5, 6, 7]
    In [22]: list10[::-1]
    Out[22]: [8, 7, 6, 5, 4, 3, 2, 1]
  • 列表方法(通用函数)

    方法名 描述
    len(list) 返回列表元素个数
    max(list) 返回列表元素最大值
    min(list) 返回列表元素最小值
    list(seq) 将序列转换为list
    count(obj) 返回列表中元素出现的次数
  • 纯列表方法

    方法名 描述
    append(obj) 在列表末尾添加一个元素
    extend(obj) 在列表末尾一次性追加另一个列表的多个元素
    insert(index,obj) 在下标处添加一个元素,不覆盖原数据,原数据往后顺延。
    pop(index) 移除列表中指定下标处的元素,默认为最后一个
    remove(obj) 按照元素名移除,移除列表中的某一个元素,匹配第一个
    clear() 清除列表中的所有元素
    index(obj,start,stop) 从列表中找出某个元素的下标,匹配第一个,可以指定范围
    reverse() 将列表倒序
    sort(reverse=False) 将列表元素按大小升序,reverse为False时为升序
    copy() 深拷贝列表,拷贝后两列表互不干扰,浅拷贝直接使用赋值运算符即可

5. 列表生成式

  • 使用python的内置功能来简单的创建出想要的list
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# range: 生成指定范围内的list
In [2]: list(range(1,10))
Out[2]: [1, 2, 3, 4, 5, 6, 7, 8, 9]
In [3]: list(range(1,10,2))
Out[3]: [1, 3, 5, 7, 9]

# 真正的列表生成式
# 取0到10
In [4]: [i for i in range(10)]
Out[4]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 取0~10之间能被2整除的数
In [5]: [i for i in range(10) if i % 2 == 0]
Out[5]: [0, 2, 4, 6, 8]

# 取0~10之间所有数的平方
In [6]: [i*i for i in range(10)]
Out[6]: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

# 取另一个列表中大于0的数
In [10]: list1 = [0, 2, -3, -4, 5]
In [11]: list2 = [i for i in list1 if i > 0]
In [12]: list2
Out[12]: [2, 5]

# 两个for循环
In [15]: [x+y for x in "ABC" for y in "XYZ"]
Out[15]: ['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']

# 根据ASCII值取a-z
In [23]: print([chr(x) for x in range(ord("a"),ord("z")+1)])
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

6. 实例演练

1
2
3
4
5
6
7
8
9
10
# 使用while删除列表中重复的数字3
numList = [1, 2, 3, 3, 3, 4, 5, 6, 2, 4, 3, 3, "3", '3']
num1 = 0
times = numList.count(3)
while num1 < times:
numList.remove(3)
num1 += 1
print(numList)

# 写一个随机点名册


Python基础      Python基础

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!