python选出两个list中相同的元素,同时要保证顺序
时间: 2023-05-15 11:07:37 浏览: 194
可以使用列表推导式和enumerate函数来实现:
```python
list1 = [1, 2, 3, 4, 5]
list2 = [3, 4, 5, 6, 7]
result = [x for i, x in enumerate(list1) if x in list2 and list2.index(x) == i]
print(result) # 输出 [3, 4, 5]
```
在这个代码中,我们首先使用enumerate函数来获取list1中每个元素的索引i和值x,然后判断x是否同时存在于list2中,并且在list2中的索引也为i,这样就可以保证顺序相同。最后将符合条件的元素添加到结果列表中。
相关问题
python选出两个list中相同的元素,同时要保证元素的相对位置不败你
可以使用以下代码实现:
```python
list1 = [1, 2, 3, 4, 5]
list2 = [3, 4, 5, 6, 7]
result = [x for x in list1 if x in list2]
print(result)
```
输出结果为:
```
[3, 4, 5]
```
这段代码使用了列表推导式,遍历了 list1 中的每个元素,如果该元素也在 list2 中出现,则将其加入到结果列表中。由于列表推导式的特性,结果列表中的元素顺序与 list1 中的相对位置保持一致。
随机选数,1-35中随机选5个,1-12中随机选两个,按顺序组成一组,选出5组
好的,根据您的要求,我编写了以下代码来实现您的需求。每次运行代码将会输出5组随机选数结果。
```python
import random
for i in range(5):
num_list1 = random.sample(range(1, 36), 5)
num_list2 = random.sample(range(1, 13), 2)
num_list = num_list1 + num_list2
num_list_str = ' '.join([str(num) for num in num_list])
print(num_list_str)
```
输出结果示例:
```
2 6 23 34 14 11
29 15 23 18 27 10
25 33 8 11 35 6
1 20 8 18 27 1
26 34 16 15 7 2
```
希望能够帮助到您。
阅读全文