一个list的索引为另一个list的数怎么提取
时间: 2023-05-17 22:05:36 浏览: 69
可以使用以下代码来提取一个list的索引为另一个list的数:
list1 = [1, 2, 3, 4, 5]
list2 = [2, 4]
result = [list1[i] for i in list2]
这段代码将会提取list1中索引为2和4的元素,即[3, 5]。
相关问题
对一个list提取索引为1,2,3的数
你可以使用Python中的切片操作来提取一个list中的索引为1,2,3的数,代码如下:
```python
my_list = [0, 1, 2, 3, 4, 5]
new_list = my_list[1:4]
print(new_list)
```
输出结果为:
```
[1, 2, 3]
```
这里使用了切片操作`[1:4]`,表示提取索引为1到3的数,不包括索引为4的数。
list按照另一个list切分
您好,list按照另一个list切分是一种常见的数据处理操作。具体地,我们可以将一个list中的元素按照另一个list中的值来进行切分。如果某个元素在另一个list中出现,则将该元素之前的所有元素划分为一组。例如,对于以下两个list:
```
lst1 = [1, 2, 3, 4, 5, 6]
lst2 = [3, 6]
```
我们可以将lst1划分为以下两个子list:
```
[[1, 2, 3], [4, 5, 6]]
```
其中,[1, 2, 3]是由lst1中前三个元素组成的子list,因为3在lst2中出现;[4, 5, 6]则是由lst1中剩余的元素组成的子list。
在Python中,我们可以使用列表解析来实现这个操作,代码如下:
```
lst1 = [1, 2, 3, 4, 5, 6]
lst2 = [3, 6]
res = [lst1[i:j] for i, j in zip( + [idx+1 for idx, val in enumerate(lst1) if val in lst2],
[idx+1 for idx, val in enumerate(lst1) if val in lst2] + [None])]
print(res)
```
其中,zip函数用于将两个list按照相同的索引位置进行打包。` + [idx+1 for idx, val in enumerate(lst1) if val in lst2]`用于构造一个新的list,其中包含了每个子list的起始位置。`[idx+1 for idx, val in enumerate(lst1) if val in lst2] + [None]`则构造了一个新的list,其中包含了每个子list的结束位置(最后一个子list的结束位置为None)。最终,我们使用列表解析将原始list按照这些起始和结束位置进行切分,并将结果保存在一个新的list中。