Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python附加到列表或忽略_Python_List - Fatal编程技术网

Python附加到列表或忽略

Python附加到列表或忽略,python,list,Python,List,我想制作一个数组,如下所示: for i in range(0, len(final), 3): ar.append( ( final[i] + 100, final[i+1] + 100, final[i+2] + 100 ) ) 但有一个简单的问题。final的长度约为2682715,当2682714使用step=3 final[2682714] = OK final[2

我想制作一个数组,如下所示:

for i in range(0, len(final), 3):
    ar.append(
        (
            final[i] + 100,
            final[i+1] + 100,
            final[i+2] + 100
        )
    )
但有一个简单的问题。final的长度约为2682715,当
2682714
使用
step=3

final[2682714] = OK
final[2682715] = OK
final[2682716] = ERROR
我怎么办?我们可以使用
try/except索引器
,但整个项目将被忽略

final = range(31)
ar = []
for i in range(0, len(final), 3):
    ar.append(tuple(final[i:i+3]))

print(ar)
输出:

[(0, 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,)]
列表长度可以被3整除-最后一个元素将是最后一个三元组,而不是只有一个元素的元组

我的元组在没有休息的情况下不能被3整除,因此我在末尾有一个不完整的
元组


使用列表理解
元组(final[i:i+3])
将确保您不会超出
final
的边界,剩余的
1
2
数字位于最后一个
元组中。您可以使用列表理解:

final = (1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15)
ar = []
ar = [final[i:i + 3] for i in range(0, len(final), 3)]
print(ar)
输出:

[(1, 2, 3), (4, 5, 7), (8, 9, 10), (11, 12, 13), (14, 15)]

切片很好,一行添加一个
zip

a = [*range(9)]

[*zip(a[::3], a[1::3], a[2::3])]

Out[321]: [(0, 1, 2), (3, 4, 5), (6, 7, 8)]  

zip
自动删除不构成三元组的额外元素

ar的最后一个元素应该是什么
(final[2682714],final[2682715])
final[2682715]
@joren485“整个项目将被忽略”是什么意思?我想要最后两个项目,
除了在SeppeMariënote将被忽略之外,
列表(范围(31))
实际上没有必要,因为
range
对象是支持
len
和切片的序列……好吧,这很好。。。但是如果我想加上一些数字呢?例如,
final[i]+100,final[i+1]+100,final[i+2]+100
在这种情况下我们不能使用元组。。。有可能吗?@ArashHatami在你的问题中没有具体说明。你想给每一个都添加相同的常数吗?@ArashHatami
ar.append(tuple([x+100代表x在final[i:i+3]])
这是
0+每3
每3跳过1+每3
跳过2+每3
并压缩?Neati更新了我的答案,它现在会给你最后的项目