如何解决将子列表中的每三个元素附加到字典中
假设我有一个包含列表的列表。
board = [[5,3,7,1,0],[6,9,5,[0,8,6,[8,3],[4,1],[7,2,6],4,5],9]]
我想将每个子列表中的每三个数字附加到字典中的一个键。 例如
dd = {1:[5,8]}
然后我会寻找下一个 3x3 部分。
dd = {2:[0,0]}
总共我应该有 9 个键,每个键都有 9 个元素的列表。
这显然行不通XD:
board = [[5,9]]
xBx = {}
count1 = 1
count2 = 3
count3 = 0
for row in board:
if count1 == 4:
count = 1
xBx[count1] = row[count3:count2]
count1 += 1
count2 += 3
count3 += 3
print(xBx)
解决方法
使用numpy,更容易对多维数组进行切片
import numpy as np
board = np.array(board)
result = {}
for i in range(len(board) // size):
for j in range(len(board) // size):
values = board[j * size:(j + 1) * size,i * size:(i + 1) * size]
result[i * size + j + 1] = values.flatten()
然后 result
给予
{
1: array([5,3,6,9,8]),2: array([8,4,7,0]),3: array([0,4: array([0,1,5,5: array([0,8,2,6: array([0,7: array([1,8: array([0,6]),9: array([2,9])
}
,
这就是您可能正在寻找的
size = 3
l = len(board)
dict = {}
dictIndex = 1
for x in range(0,l,size):
for y in range(0,size):
a = []
for i in range(x,x + size):
for j in range(y,y + size):
a.append(board[i][j])
dict[dictIndex] = a
dictIndex += 1
print(dict)
较短的变体
size,dict,dictIndex = 3,len(board),{},1
for x in range(0,size):
dict[dictIndex],dictIndex = [board[i][j] for i in range(x,x + size) for j in range(y,y + size)],dictIndex + 1
print(dict)
,
这应该有效:
total = 0
for status in tweepy.Cursor(api.search,q='cricket',lang="en",geocode="24.8607,67.0011,25mi OR 40.7128,74.0060,20mi"
).items(10):
total+=1
print(total)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。