问题描述
嗨,我的问题很简单 我有这样的数组
列表=[3,2,4,1]
我想得到第一个元素 --> 3
和第二个元素 --> 2
以及最后一个或第四个元素 --> 1
output = [3,1]
我也想要
output =[3,1]
不使用这种方法
output=[ list[0],list[2],list[3] ]
并且不使用任何函数或库,只使用 python
我的意思是使用切片和 for 循环
而且索引也会变化以打印所有可能的组合
看下面的代码
nums_1=[3,1]
results=[]
steps=1
s=0
limit=pow(2,len(nums_1))
while steps<=len(nums_1) and s<limit :
for i in range (0,len(nums_1)+1):
for j in range (0,len(nums_1)+1):
if nums_1[i:j:steps] not in results:
results.append(sorted(nums_1[i:j:steps]))
print(i,j,steps,'--------------->',nums_1[i:j:steps])
steps+=1
s+=1
输出是 [[],[3],[2,3],3,4],[1,[2],[4],[1],[3,2],3]]
[1,3] 和 [1,4] 不在结果中
解决方法
假设您知道要查找哪些索引,您可以将它们插入到列表中。然后使用列表推导生成包含找到的元素的新列表。
lst=[3,2,4,1]
indexes = [0,1,-1]
found = [lst[ind] for ind in indexes]