我有一个列表:由乘法创建列表,但没有每个列表镜
newElemLines = [[ '1', '2', '5'],[ '2', '9' , '3']]
,我希望它看起来像这样:
newElemLines2 = [[[ '1', '2', '5'],[ '2', '9','3']],[['1','2','5'],['2','9','3']],[['1','2',' '5'],['2','9','3']]]
所以我想我可以只使用此代码:
newElemLines = [['1', '2', '5'], ['2', '9','3']]
translQuant = 3
newElemLines = [newElemLines]*(translQuant)
nodeQuant = 11
for i in range(0, len(newElemLines)):
for j in range(0, len(newElemLines[i])):
for x in range(0, len(newElemLines[i][j])):
newElemLines[i][j][x] = int(newElemLines[i][j][x]) + int((i)*nodeQuant)
print(newElemLines)
但是我multiplicated原始列表只是反映该行对所有4个部分名单:
newElemLines[i][j][x] = int(newElemLines[i][j][x]) + int((i)*nodeQuant)
KFL有同样的问题: Create a list utilizing multiplication but not have each list mirror 所以我尝试使用这样的解决方案,但它仍然无法正常工作。
newElemLines = [['1', '2', '5'], ['2', '9','3']]
nodeQuant = 11
def make_structure(dims, fill=None):
fill = False if fill is None else fill
get_fill = lambda: fill() if callable(fill) else fill
global result
result = []
for i in range(dims[0]):
if len(dims) > 1:
result.append(make_structure(dims[1:], fill=fill))
else:
result.append(get_fill())
print(result)
fill = newElemLines
dims = [3]
make_structure(dims, fill)
newElemLines = result
for i in range(0, len(newElemLines)):
for j in range(0, len(newElemLines[i])):
for x in range(0, len(newElemLines[i][j])):
newElemLines[i][j][x] = int(newElemLines[i][j][x]) + int((i)*nodeQuant)
print(newElemLines)
不要使用列表乘法。 – user2357112
请把它降低到[mcve]。强调**最小**。是的,列表乘法不符合你的期望。 –