生成没有列表理解的等效方法

时间:2017-09-25 18:55:27

标签: python python-2.7

我对Python中的列表理解有点困惑。我刚刚在3个月前学过Python并希望改进。我有以下方法:

def func(self, n):
    Arr = []
    for _ in range(n):
        Arr.append(random.randint(0, 2 ** 16))
    Arr = list(set(Arr))

    for x in Arr: # This loop has an issue
        Arr.append(('{0:0' + str(16) + 'b}').format(x))

    for x in Arr: # This loop has an issue
        Arr.asarray([list(map(int, list(x)))])
    return Arr

我想通过展平列表理解来生成它的等价物。我做了以下事情:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/my_drawable">

        ...
        some text views etc.
        ...

    </RelativeLayout>

我在第二个和第三个循环中仍有问题。任何帮助都非常感谢:)

1 个答案:

答案 0 :(得分:0)

在迭代时不要附加到列表中;循环只会永远持续下去。

相反,使用列表订阅更新每个索引处的项目:

for i in range(len(Arr)):
    Arr[i] = '{0:016b}'.format(Arr[i])

毋庸置疑,列表理解更加优雅,并且比 循环的更容易阅读和理解。< / p>