两个列表[1,3,5,7],[3,7,8,9] ,用用pyhton代码实现:两个列表求交集 [3,7]
时间: 2023-10-28 22:04:53 浏览: 61
可以使用Python中的集合(set)来实现两个列表的求交集操作。代码如下:
```
list1 = [1, 3, 5, 7]
list2 = [3, 7, 8, 9]
set1 = set(list1)
set2 = set(list2)
intersection = list(set1 & set2)
print(intersection)
```
输出结果为[3, 7]。其中,`set1`和`set2`分别将`list1`和`list2`转换成集合,`&`运算符求出两个集合的交集,最后将交集转换成列表即可。
相关问题
有两个列表[1,3,5,7],[3,7,8,9]用pyhton代码实现两个列表求并集
可以使用set()函数将列表转化为集合,然后使用union()函数求并集。
代码如下:
```
list1 = [1, 3, 5, 7]
list2 = [3, 7, 8, 9]
set1 = set(list1)
set2 = set(list2)
union_set = set1.union(set2)
print(union_set)
```
输出结果:
```
{1, 3, 5, 7, 8, 9}
```
求解pyhton代码:利用动态规划策略实现0-1背包
下面是Python实现0-1背包问题的动态规划算法:
```python
def knapsack_dp(weights, values, capacity):
n = len(weights)
# 定义二维数组dp
dp = [[0] * (capacity + 1) for _ in range(n + 1)]
for i in range(1, n + 1):
for j in range(1, capacity + 1):
if j < weights[i - 1]:
dp[i][j] = dp[i - 1][j]
else:
dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - weights[i - 1]] + values[i - 1])
return dp[n][capacity]
```
其中,weights和values分别是物品的重量和价值,capacity是背包的容量。算法返回的是能够装入背包的最大价值。
具体来说,二维数组dp[i][j]表示前i个物品,容量为j时的最大价值。对于每个物品i,有两种情况:不放入背包和放入背包。如果不放入背包,则dp[i][j]与dp[i-1][j]相等;如果放入背包,则dp[i][j]为dp[i-1][j-wi]+vi,其中wi和vi分别表示第i个物品的重量和价值。
最后,返回dp[n][capacity]即可。
阅读全文