我需要在Python中创建一个列表列表,所以我输入以下内容:
myList = [[1] * 4] * 3
Run Code Online (Sandbox Code Playgroud)
列表看起来像这样:
[[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]]
Run Code Online (Sandbox Code Playgroud)
然后我改变了最里面的一个值:
myList[0][0] = 5
Run Code Online (Sandbox Code Playgroud)
现在我的列表看起来像这样:
[[5, 1, 1, 1], [5, 1, 1, 1], [5, 1, 1, 1]]
Run Code Online (Sandbox Code Playgroud)
这不是我想要或期望的.有人可以解释一下发生了什么,以及如何解决这个问题?
numpy文档建议使用数组而不是矩阵来处理矩阵.但是,与octave(我直到最近使用)不同,*不执行矩阵乘法,你需要使用函数matrixmultipy().我觉得这使得代码非常难以理解.
有人分享我的观点,并找到了解决方案吗?
我想知道如何在Python中声明二维数组.
arr = [[]]
arr[0].append("aa1")
arr[0].append("aa2")
arr[1].append("bb1")
arr[1].append("bb2")
arr[1].append("bb3")
Run Code Online (Sandbox Code Playgroud)
前两个任务工作正常.但是当我尝试这样做时arr[1].append("bb1"),我收到以下错误:
IndexError: list index out of range.
Run Code Online (Sandbox Code Playgroud)
我在尝试宣布2-D阵列时做了什么傻事?
编辑:
但我不知道数组中的元素数量(行和列).
我想声明一个数组,并且无论ListBox中存在的组名如何,都应删除ListBox中存在的所有项.任何人都可以帮我编写Python代码.我正在使用WINXP OS和Python 2.6.
在Python中,我想要一种直观的方法来创建一个三维列表.
我想要一个(n乘n)列表.因此,对于n = 4,它应该是:
x = [[[],[],[],[]],[[],[],[],[]],[[],[],[],[]],[[],[],[],[]]]
Run Code Online (Sandbox Code Playgroud)
我尝试过使用:
y = [n*[n*[]]]
y = [[[]]* n for i in range(n)]
Run Code Online (Sandbox Code Playgroud)
这两者似乎都在创建引用的副本.我也尝试过对列表生成器的天真应用,但收效甚微:
y = [[[]* n for i in range(n)]* n for i in range(n)]
y = [[[]* n for i in range(1)]* n for i in range(n)]
Run Code Online (Sandbox Code Playgroud)
我也尝试使用循环迭代地构建数组,但没有成功.我也试过这个:
y = []
for i in range(0,n):
y.append([[]*n for i in range(n)])
Run Code Online (Sandbox Code Playgroud)
这样做有更简单或更直观的方法吗?
我正在尝试将矩阵转换为pandas数据框:
matrixA={}
matrixA[0,0]='a'
matrixA[0,1]='b'
matrixA[1,0]='c'
matrixA[1,1]='d'
Run Code Online (Sandbox Code Playgroud)
像这样:
import pandas as pd
pd.DataFrame(matrixA)
Run Code Online (Sandbox Code Playgroud)
我收到一个错误.
我正在尝试append一个多维数组.
这是我到目前为止所做的:
arr=[[]]
for i in range(10):
for j in range(5):
arr[i].append(i*j)
print i,i*j
print arr
Run Code Online (Sandbox Code Playgroud)
这是我的预期输出:
[[0,0,0,0,0],[0,1,2,3,4],[0,2,4,6,8],[0,3,6,9,12],[0,4,8,12,16],[0,5,10,15,20],[0,6,12,18,24],[0,7,14,21,28],[0,8,16,24,32],[0,9,18,27,36]]
但是,我收到此错误:
IndexError:列表索引超出范围
我想在 python 中声明并填充一个二维数组,如下所示:
def randomNo():
rn = randint(0, 4)
return rn
def populateStatus():
status = []
status.append([])
for x in range (0,4):
for y in range (0,4):
status[x].append(randomNo())
Run Code Online (Sandbox Code Playgroud)
但我总是得到 IndexError: list index out of range 异常。有任何想法吗?
我目前正在开发一个项目,尝试使用 Python 成像库创建希尔伯特曲线。我创建了一个函数,它将通过每次迭代生成曲线的新坐标,并将它们放入各种列表中,然后我希望能够移动、旋转和缩放。我想知道是否有人可以给我一些提示或方法来做到这一点,因为我完全无能为力。仍在处理大量代码。
#! usr/bin/python
import Image, ImageDraw
import math
# Set the starting shape
img = Image.new('RGB', (1000, 1000))
draw = ImageDraw.Draw(img)
curve_X = [0, 0, 1, 1]
curve_Y = [0, 1, 1, 0]
combinedCurve = zip(curve_X, curve_Y)
draw.line((combinedCurve), fill=(220, 255, 250))
iterations = 5
# Start the loop
for i in range(0, iterations):
# Make 4 copies of the curve
copy1_X = list(curve_X)
copy1_Y = list(curve_Y)
copy2_X = list(curve_X)
copy2_Y = list(curve_Y)
copy3_X = list(curve_X)
copy3_Y = list(curve_Y) …Run Code Online (Sandbox Code Playgroud) 在Python中,我有一个包含相关信息的字典
arrowCell = {'up': False, 'left': False, 'right': False}
Run Code Online (Sandbox Code Playgroud)
如何制作一个包含这些字典的 i 行和 j 列的数组?
python ×10
arrays ×3
list ×2
numpy ×2
dictionary ×1
listbox ×1
matrix ×1
mutable ×1
nested-lists ×1
pandas ×1
python-2.7 ×1
rotation ×1
scale ×1
translation ×1