【问题标题】:How to slice an array into certain subarray?如何将数组切片成某个子数组?
【发布时间】:2019-06-25 12:15:07
【问题描述】:

我有一个类似的数组

[
    {'name':'a'},
    {'name':'b'},
    {'name':'c'},
    {'name':'d'},
    {'name':'e'},
    {'name':'f'}
]

数组长度是6,现在我想把它分成4个子数组,我希望结果会像

[
    [
         {'name':'a'},
         {'name':'e'}
    ],
    [
         {'name':'b'},
         {'name':'f'}
    ],
    [
         {'name':'c'}
    ],
    [
         {'name':'d'}
    ]
]

我可以用循环来做到这一点,我想知道有没有其他聪明的方法来做到这一点?

我的错,也许我没有说清楚这里是我的代码:

def uploadSheets(servers, sheets):
serverLen = len(servers.keys())
sheetsLen = len(sheets)
index = 0
count = int(cookieLen / serverLen)
left = int(sheetsLen % serverLen)
for key in servers.keys():
    ip = servers[key]
    remoteExecute(user=user, ip=ip, command='rm /home/pdd/sheets/*', passwd=passwd)
    for j in range(count):
        localPath = '../deploy/' + sheets[index * count + j]
        remotePath = '/home/pdd/sheets/'
        fileTransfer(localPath=localPath, ip=ip, user=user, destPath=remotePath, passwd=passwd)
    index += 1
for i in range(left):
    localPath = './deploy/' + sheets[index * count + i]
    remotePath = '/home/pdd/sheets/'
    ip = servers[list(servers.keys())[i]]

print('finish')

我有一组服务器,每天我都会将越来越多的文件上传到每个服务器而不会重复。并且有一种模式是文件名相互复制更好地发送到不同的服务器。

就像我有 101 个苹果,20 个篮子,我把苹果从 busket1 放到 busket20 的篮子里,最后,busket1 有 6 个苹果,其他有 5 个。

【问题讨论】:

  • 你能解释一下里面的逻辑吗?
  • 将元素组合在一起的标准是什么?为什么 ae 分组但 cd 不分组?
  • [ [arr[0],arr[4]], [arr[1],arr[5]], [arr[2]], [arr[3]] ]
  • 也许您应该在问题中包含循环代码,以便人们可以准确地看到您正在尝试做什么。我假设你有一些模式想要申请一个可变大小的输入数组,否则为什么还要使用循环呢?
  • 列表和字典需要循环;这不是带有编译数组操作的numpy(对于数值)。

标签: python arrays slice


【解决方案1】:

根据将元素排列在一起的逻辑是如何构建的,您可以执行以下操作:

list1 = [{'name':'a'},{'name':'b'},{'name':'c'},{'name':'d'},{'name':'e'},{'name':'f'}]
logic = [[0,4], [1,5], [2,3]]
print([[list1[y] for y in x] for x in logic])

输出

[[{'name': 'a'}, {'name': 'e'}],
 [{'name': 'b'}, {'name': 'f'}],
 [{'name': 'c'}, {'name': 'd'}]]

【讨论】:

    猜你喜欢
    • 2017-04-15
    • 2021-12-28
    • 1970-01-01
    • 2014-09-03
    • 2012-10-04
    • 2023-04-04
    • 1970-01-01
    • 2012-11-10
    • 1970-01-01
    相关资源
    最近更新 更多