• while循环 操作列表与字典


    1、在列表间移动元素

    #!/usr/bin/env python

    #filename=list.py

    num1 = [1,3,5,7,9,11,13,15]

    num2 = []

    while num1:

        interest_number = num1.pop()

        num2.append(interest_number)

    print(num2)

    #实例是一个最简单的在列表间移动元素的脚本#

    会发现效果是:

    [root@Python-Test Day3]# ./list.py
    [15, 13, 11, 9, 7, 5, 3, 1]

    因为num1.pop()是从最后一个开始pop的,所以导致整个mun2是ASSIC逆序的,可以通过函数sort()来进排序

    while num1:
    interest_number = num1.pop()
    num2.append(interest_number)
    num2.sort()
    print(num2)

    [root@Python-Test Day3]# ./list.py
    [1, 3, 5, 7, 9, 11, 13, 15]

    删除列表中的特定元素:

    注意看如下代码

    >>> pets = [ 'dog', 'cat', 'rabbit', 'goldfish','cat']
    >>> pets.remove('cat')
    >>> pets
    ['dog', 'rabbit', 'goldfish', 'cat']

    有一个宠物列表“pets”,其中多次出现了‘cat’这个元素,现在需要从此列表中移除‘cat’元素,

    使用之前的list.remove(' ’)会发现只是把位于第一个index的cat删除了。没有移除所有,这个时候需要使用到while循环来帮忙了

    代码段:

    #!/usr/bin/env python

    #filename while_list.py

    pets = [ 'dog','cat','goldfish','cat','pig']

    while 'cat' in pets:

        pets.remove('cat')

    print(pets)

    根据用户输入来填充字典:(例如,问卷调查)

    #!/usr/bin/env python

    #filename=questionnaire.py  

    love_av = {}    #定义一个空字典#

    polling_active = True 

    while polling_active:

        name = input(" What is your name? :")   #第一个input存放到变量 name#

        response = input(" Which actor do you like better? (Takizawa Rola/Maria Ozawa) :")    #第二个input存放到变量 response#

        love_av[name] = response  #编辑字典 name为键,response为值#

        repeat = input(" Do you have any other hobbies? (yes/no) :")

        if repeat == 'no':

            polling_active = False

    print(" -----Poll Results-----")

    for name,response in love_av.items():

        print(name.title() + " prefer " + response.title())

    这段交互代码有一个缺陷:

    就是当用户输入的是yes/no选项出现大小写混搭的时候,程序无法区分。

    改进——

    把repeat 变量进行一次转换

     repeat = repeat.upper() #无论输入什么。全部转化为大写 #

    if repeat == 'NO':

            polling_active = False

    这时候,不管用户输入No ONO o 都可以被程序所识别。

  • 相关阅读:
    我的书单
    算法面试 字符串全排列
    各种算法面试简介--面试用一句话陈述
    逻辑回归 面试
    EM算法 小结
    python实现 单链表的翻转
    Transformer模型总结
    逻辑回归原理 面试 Logistic Regression
    XGBoost的优点
    python-解决pip安装速度慢的问题--豆瓣镜像
  • 原文地址:https://www.cnblogs.com/alben-cisco/p/6827875.html
Copyright © 2020-2023  润新知