数组Python中的多个xrange

时间:2016-09-23 12:28:22

标签: python arrays

我有这个正在运行的数组:

              --------- beginning of crash
              E/AndroidRuntime: FATAL EXCEPTION: main
              Process: com.example.victorvicari.actionbarteste, PID: 2714
              java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference
                  at android.view.ViewConfiguration.get(ViewConfiguration.java:364)
                  at android.view.View.<init>(View.java:3788)
                  at android.view.View.<init>(View.java:3892)
                  at android.view.ViewGroup.<init>(ViewGroup.java:573)
                  at android.widget.AdapterView.<init>(AdapterView.java:246)
                  at android.widget.AbsSpinner.<init>(AbsSpinner.java:70)
                  at android.widget.Spinner.<init>(Spinner.java:232)
                  at android.widget.Spinner.<init>(Spinner.java:199)
                  at android.widget.Spinner.<init>(Spinner.java:154)
                  at android.widget.Spinner.<init>(Spinner.java:139)
                  at android.widget.Spinner.<init>(Spinner.java:112)
                  at com.example.victorvicari.actionbarteste.Fragments.Fase2Fragment.addSpinner(Fase2Fragment.java:81)
                  at com.example.victorvicari.actionbarteste.MainActivity$1.onClick(MainActivity.java:70)
                  at android.view.View.performClick(View.java:5198)
                  at android.view.View$PerformClick.run(View.java:21147)
                  at android.os.Handler.handleCallback(Handler.java:739)
                  at android.os.Handler.dispatchMessage(Handler.java:95)
                  at android.os.Looper.loop(Looper.java:148)
                  at android.app.ActivityThread.main(ActivityThread.java:5417)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

然而,当我尝试这个时,它不是。

urls = [
    'a.com/%s' % page for page in xrange(1,4,1)
]

错误消息是NameError:名称'page'未定义

如何以速记方式生成这样的数组?

urls = [
    'a.com/%s' % page for page in xrange(1,4,1),
    'b.com/%s' % page for page in xrange(1,4,1)
]

更新

有人建议此帖子与此帖重复:How to append list to second list (concatenate lists)但是,我不同意。

尽管解决方案是相同的,但问题的目的是不同的。以防万一,有其他用户想知道如何在数组中使用多个xrange,那么这个问题的答案,或者其他问题可能是他们最好的答案。

4 个答案:

答案 0 :(得分:2)

只连接两个列表。

urls = ['a.com/%s' % page for page in xrange(1,4,1)]+['b.com/%s' % page for page in xrange(1,4,1)]

答案 1 :(得分:2)

您可以使用生成器(实际列表推导)语句,如下所示:

urls = ['{0}.com/{1}'.format(site, page) for site in ['a', 'b'] for page in xrange(1,4,1)]

这导致一个列表:

['a.com/1', 'a.com/2', 'a.com/3', 'b.com/1', 'b.com/2', 'b.com/3']

答案 2 :(得分:0)

你基本上需要嵌套循环。在理解中它看起来像

Object.defineProperty(doc, 'GridOrder', {configurable: true})

答案 3 :(得分:0)

如果要生成具有相同模式但长度更长的列表,可以这样做:

import string

urls = ['%s.com/%s' % (string.ascii_lowercase[i], page + 1) for i in xrange(10) for page in xrange(10)]