V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
wex
V2EX  ›  Python

python list

  •  
  •   wex · 2016-05-05 17:20:11 +08:00 via Android · 3266 次点击
    这是一个创建于 3159 天前的主题,其中的信息可能已经有所发展或是发生改变。
    a = ['22','35','40','0','7']
    for i in a:
    if s2<i:
    s2+=1
    print(s2)
    这个只能判断第一个,也就是 22 ,但是第二个 35 不会判断,怎么解决啊

    也就是说第一个 22 要求输出 0-22
    第二个要求 0-35
    。。。。
    20 条回复    2016-05-06 15:23:59 +08:00
    nevin47
        1
    nevin47  
       2016-05-05 17:30:00 +08:00
    LZ 整理下代码格式吧……
    https://www.v2ex.com/t/130567
    gotounix
        2
    gotounix  
       2016-05-05 17:33:47 +08:00
    s2 是啥玩意?!
    wex
        3
    wex  
    OP
       2016-05-05 17:42:30 +08:00 via Android
    a = ['22','35','40','0','7']
    for i in a:
    if s2<i:
    s2+=1
    print(s2)
    这个只能判断第一个,也就是 22 ,但是第二个 35 不会判断,怎么解决啊

    也就是说第一个 22 要求输出 0-22
    第二个要求 0-35
    。。。。
    wex
        4
    wex  
    OP
       2016-05-05 17:43:06 +08:00 via Android
    @nevin47
    @gotounix

    手机写的,着急了, s2 都没写
    gotounix
        5
    gotounix  
       2016-05-05 17:46:39 +08:00
    @wex 还是不知道 s2 是什么东西……
    wex
        6
    wex  
    OP
       2016-05-05 17:50:22 +08:00 via Android
    @gotounix
    s2=0
    是个变量
    pimin
        7
    pimin  
       2016-05-05 17:56:34 +08:00 via Android
    gotounix
        8
    gotounix  
       2016-05-05 17:57:43 +08:00
    @wex 是要这种效果?
    wex
        9
    wex  
    OP
       2016-05-05 18:05:40 +08:00 via Android
    @gotounix
    0
    1
    2
    3
    4
    5
    6
    7....这样的
    nevin47
        10
    nevin47  
       2016-05-05 18:41:37 +08:00
    1 、字符转整形
    2 、循环内加一个循环
    wex
        11
    wex  
    OP
       2016-05-05 18:47:23 +08:00 via Android
    @nevin47 不知道为什么,我循环嵌套循环都是在循环第一个 22
    charmjoe
        12
    charmjoe  
       2016-05-05 18:52:45 +08:00
    你的 list 里面是字符串啊,你要比较的是数字。。
    pimin
        13
    pimin  
       2016-05-05 19:02:20 +08:00 via Android
    @wex
    1.看下 7L 的代码
    2.这里用两层循环是可以的,但是用 map 更简洁高效。
    3.这里判断条件不能用 if ,要用 while
    wex
        14
    wex  
    OP
       2016-05-05 21:52:25 +08:00   ❤️ 1
    @pimin 7L 代码不能直接运行?没有输出!!!
    另外
    lesson = ['22', '30', '25', '40', '0', '21']
    a = 0
    for i in lesson:
    while a <= int(i):
    a += 1
    print(a)
    我这样写的。但是是错的
    qqmishi
        15
    qqmishi  
       2016-05-05 21:55:39 +08:00 via Android
    a=0 放在 for 循环内部
    print 放在+=1 前面
    wex
        16
    wex  
    OP
       2016-05-05 21:57:41 +08:00
    @qqmishi
    pimin
        17
    pimin  
       2016-05-05 22:53:37 +08:00
    @wex
    我手机上装的 Qpython,我试了运行结果正确的,就发上来了
    结果 Python3 的 map 函数改了,返回的是 iterator,非常抱歉.
    正确的用法改成 list(map(printn, a))就可以直接显示结果了.
    具体可以看这里的讨论
    https://segmentfault.com/a/1190000000322433
    mcwanderer
        18
    mcwanderer  
       2016-05-06 07:25:06 +08:00
    Patrick95
        19
    Patrick95  
       2016-05-06 11:44:41 +08:00 via iPhone
    需要两层循环
    sualwu
        20
    sualwu  
       2016-05-06 15:23:59 +08:00
    [list(range(int(i))) for i in ['22','35','40','0','7']]
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1033 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:29 · PVG 03:29 · LAX 11:29 · JFK 14:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.