zoukankan      html  css  js  c++  java
  • 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 都可以被程序所识别。

  • 相关阅读:
    Disruptor详细介绍之快速入门
    Java魔法类:sun.misc.Unsafe
    Java开源框架推荐
    CAS(Compare and Swap)无锁算法之volatile不能保证原子性而Atomic可以
    数据库乐观锁、悲观锁、共享锁、排它锁、行锁、表锁概念的理解
    Linux上查找线程使用的CPU时间最长
    虚拟机内存结构
    插入排序和归并排序(算法学习1)
    POJ-2942:吃糖果
    POJ-4004:数字组合(用位移方法解组合数问题,Java版)
  • 原文地址:https://www.cnblogs.com/alben-cisco/p/6827875.html
Copyright © 2011-2022 走看看