"""
對如下列表推導式 “由內向外”進行剖析:
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)
對python列表推導式的理解
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.