我有一个很大的列表,目前只包含0。我还有一个小的列表,我想把它复制到大列表中的某些位置。我要替换原始值。到目前为止我发现的唯一方法是:
start = (startrow, startcol)
for i in range( start[0], start[0] + len(shortlist) ):
for j in range( start[1], start[1] + len(shortlist[0]) ):
longlist[i][j] = shortlist[i-start[0]][j-start[1]]
不过,这感觉不是很像python—据我所知,列表理解通常比循环更受欢迎,尽管我在几个小时的搜索中没有找到它,但可能有一些函数可以更优雅地实现这一点。有比我更好的解决办法吗?你知道吗
编辑:我也对NumPy解决方案感兴趣,甚至可能比普通的Python解决方案更感兴趣。你知道吗
可以使用切片替换来替换内环:
根据您要执行的操作,可以使用
numpy
-数组:您现在所做的似乎是错误的,您首先从
start[0]
和start[1]
开始i
和j
,但是在分配值时,您再次添加了start[0]
和start[1]
。我认为这不是你想要的。你知道吗你缩进的可能是-
对我来说,这似乎已经够Python的了,试图用列表理解来做这件事会让人看不懂,这在我看来不是Python的。你知道吗
示例/演示-
相关问题 更多 >
编程相关推荐