對python列表推導式的理解

"""
對如下列表推導式 “由內向外”進行剖析:
1、最內層 [np.random.randint(j, j*10 + 1) for i in range(1, 6)],也是一個列表推導式。而且這個列表的元素是用外層的計數器 j 生成的。先不考慮列表的具體元素值是多少,先看結構:
   for i in range(1, 6),即循環 5 次,生成一個長度爲 5 的列表。等價於:
   my_list = list()
   for i in range(6):
       my_list.append(i)

2、str()[1, -1] 函數:將列表直接轉爲字符串,即 [1, 12, 340] ——> "1, 12, 340"。
   也可以用: ",".join(str(i) for i in [1, 12, 340])

3、最外層 [  for j in range(1, 11)],生成一個包含 10 個元素的列表

整個列表推導式等價於:
outer_list = list()
for j in range(1, 11):
    inner_list = list()
    for i in range(1, 6):
        n = random.randint(j, j*10)
        inner_list.append(n)
    # print(inner_list)
    outer_list.append(str(inner_list)[1: -1])  # 得到的是一維列表:[" ", " ", " ",...]
    # outer_list.append(inner_list)  # 得到的是嵌套列表:[[], [], [],...]
print(outer_list)
"""
import random

my_list = [str([np.random.randint(j, j*10 + 1) for i in range(1, 6)])[1:-1] for j in range(1, 11)]

outer_list = list()
for j in range(1, 11):
    inner_list = list()
    for i in range(1, 6):
        n = random.randint(j, j*10)
        inner_list.append(n)
    # print(inner_list)
    outer_list.append(str(inner_list)[1: -1])  # 得到的是一維列表:[" ", " ", " ",...]
    # outer_list.append(inner_list)  # 得到的是嵌套列表:[[], [], [],...]

print(outer_list)
print(my_list)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章