繁体   English   中英

如何切割列表以在新列表中获取列表中的每2个连续元素?

[英]How can I slice a list to get every 2 consecutive elements of the list in new lists?

假设你有一个清单[1,2,3,...,99,100]

import numpy as np
ls = np.linspace(1,100,100)

假设您使用切片表示法来找到适合您的符号。

print(ls[:2])
>> [ 1.  2.]

print(ls[::2])
>> [  1.   3.   5.   7.  ...  97.  99.]

如何以我能得到的方式对数据进行切片

[1,2],[3,4],[5,6],[7,8],...,[99,100]

##可能并不重要,但我的目的是使其适应我的数据集,其中列表中的值表示要比较的另一个值列表(other_values [index])的数字下标。 是否可以将切片与数组相结合?

您可以使用.resize(..,2)选项。 结果是ls现在是一个具有50×2维度的numpy数组:

>>> ls.resize(ls.shape[0]/2,2)
>>> ls
array([[   1.,    2.],
       [   3.,    4.],
       [   5.,    6.],
       [   7.,    8.],
       [   9.,   10.],
       [  11.,   12.],
       [  13.,   14.],
       [  15.,   16.],
       [  17.,   18.],
       [  19.,   20.],
       [  21.,   22.],
       [  23.,   24.],
       [  25.,   26.],
       [  27.,   28.],
       [  29.,   30.],
       [  31.,   32.],
       [  33.,   34.],
       [  35.,   36.],
       [  37.,   38.],
       [  39.,   40.],
       [  41.,   42.],
       [  43.,   44.],
       [  45.,   46.],
       [  47.,   48.],
       [  49.,   50.],
       [  51.,   52.],
       [  53.,   54.],
       [  55.,   56.],
       [  57.,   58.],
       [  59.,   60.],
       [  61.,   62.],
       [  63.,   64.],
       [  65.,   66.],
       [  67.,   68.],
       [  69.,   70.],
       [  71.,   72.],
       [  73.,   74.],
       [  75.,   76.],
       [  77.,   78.],
       [  79.,   80.],
       [  81.,   82.],
       [  83.,   84.],
       [  85.,   86.],
       [  87.,   88.],
       [  89.,   90.],
       [  91.,   92.],
       [  93.,   94.],
       [  95.,   96.],
       [  97.,   98.],
       [  99.,  100.]])

就像是

list(zip(l[::2], l[1::2]))

返回具有所需配对的元组列表

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM