pt_list = [3, 4, 32, 20, 20, 10, 10, 13, 30, 10]
pt = 0
points = [
['1.', pt],
['2.', pt],
['3.', pt],
['4.', pt],
['5.', pt],
['6.', pt],
['7.', pt],
['8.', pt],
['9.', pt],
['10.', pt]
]
for i in range(0,10,1):
for j in points:
points[i][1] = j
我嘗試了一些不同的方法,但我在互聯網上找不到這個特定示例的任何內容。我想擁有pt_list每個的內部pt,所以第一個將是['1.', 3]第二個['2.', 4]和第三個['3.'32'],依此類推。
我怎樣才能做到這一點?
uj5u.com熱心網友回復:
您可以使用zip,它允許您串聯迭代兩個串列,從 2d 串列的每一行中獲取第 0 列points:
points = [[x[0], y] for x, y in zip(points, pt_list)]
您嘗試的嵌套回圈對此類問題無效(該方法將為您提供兩個串列的笛卡爾積 - 對于串列 1 的每個元素,將其與串列 2 中的每個元素配對),但是您可以按如下方式修復您的代碼:
for i in range(len(points)):
points[i][1] = pt_list[i]
請注意,我使用len(points)的是而不是硬編碼的 10。
這些解決方案假定您的串列長度相同。
uj5u.com熱心網友回復:
您可以嘗試使用以下語法來初始化這個特定的 2D 串列:
ls = [[str(i 1) '.',pt_list[i]] for i in range(0,10)]
這被稱為串列推導,它基本上意味著我們正在生成 i 個串列,其中 i 的范圍從 0 到 10,并且每個元素將是:
[str(i 1) '.',pt_list[i]]
您也可以通過從 0..10 手動替換 i 的值并查看它給出的值來理解這一點。
您還可以使用 len(pt_list).. 更改值 10。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/421236.html
標籤:
上一篇:Python3.7與2.7,分配
