博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 递归 list不正确
阅读量:4031 次
发布时间:2019-05-24

本文共 1424 字,大约阅读时间需要 4 分钟。

  


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
31
def
choose(data,yushu,result):
    
for
idx,val
in
enumerate
(data):
        
newdata
=
data[:]
        
del
newdata[idx]
        
for
x
in
xrange
(
1
,yushu
/
val
+
1
):
            
result.append({
'size'
:val,
'num'
:x})
            
if
yushu
-
val
*
x
=
=
0
:
                
finalresult.append(result)
                
print
result
            
else
:
                
choose(newdata,yushu
-
val
*
x,result)
            
result.pop()
 
 
 
total
=
1100
mylist
=
[
100
,
250
]
 
 
finalresult
=
[]
 
 
for
idx,val
in
enumerate
(mylist):
    
newdata
=
mylist[:]
    
del
newdata[idx]
    
for
x
in
xrange
(
1
,total
/
val
+
1
):
        
if
total
-
x
*
val
=
=
0
:
            
finalresult.append([{
'size'
:val,
'num'
:x}])
        
else
:
            
choose(newdata,total
-
val
*
x,[{
'size'
:val,
'num'
:x}])
print
finalresult


打出来的result结果显示

[{'num': 1, 'size': 100}, {'num': 4, 'size': 250}]
[{'num': 6, 'size': 100}, {'num': 2, 'size': 250}]
[{'num': 2, 'size': 250}, {'num': 6, 'size': 100}]
[{'num': 4, 'size': 250}, {'num': 1, 'size': 100}]

为什么finalresult里面保存的结果却是


[[{'num': 1, 'size': 100}], [{'num': 6, 'size': 100}], [{'num': 11, 'size': 100}], [{'num': 2, 'size': 250}], [{'num': 4, 'size': 250}]]


这个程序的任务是要取出mylist里面的数的组合等于total的所有组合

类似这样

250*4 + 100*1

100*11

250*2 + 100*6


发帖于 3周前
回/120阅
标签: 
  • |
0

    共有5个答案 

  • 0
  • 顶一下,求高手解答
    | |   (2015-12-10 13:28)
    0
  • 看着像 finalresult append 的result 被自己pop掉了。第八行前面把result拷贝一下吧,             res = result[:] 再 finalresult.append(res)

    | |   (2015-12-10 13:36)
    0
  • 递归的时候变量都在栈里,finalresult里面存的还是result的地址。之后pop掉了就没了。

转载地址:http://hnhbi.baihongyu.com/

你可能感兴趣的文章
高并发之限流算法:计数器、漏桶、令牌桶
查看>>
Tomcat 之 server.xml 优化配置
查看>>
消息中间件:谈一谈 RocketMQ 的技术架构
查看>>
微服务统一认证,OAuth2 的认证流程
查看>>
Dubbo性能有多强,来看下官方的性能测试报告
查看>>
Kafka的常用使用场景:从初级到高级,你用到了几个
查看>>
阿里技术团队推荐:Dubbo 服务化最佳实践
查看>>
Nginx 限流常用模块:限制并发和IP访问频率
查看>>
OpenResty 高性能服务器,单机可达10K
查看>>
RocketMQ的十二个特性,你都知道吗「上」
查看>>
RocketMQ的十二个特性,你都知道吗「下」
查看>>
一文搞懂RocketMQ最常见的16个基本概念
查看>>
Intellij IDEA启动优化,让开发的感觉飞起来
查看>>
玩转Java高并发?请先说明下并发下的惊群效应
查看>>
轻松搭建Redis 5.0集群环境,只需十分钟
查看>>
Jmeter压测错误,Address already in use: connect
查看>>
高并发API网关,Spring Cloud Gateway 之限流操作
查看>>
OAuth2.0 微服务认证授权,四种常见的授权模式
查看>>
Java 2019 面试宝典
查看>>
Redis面试题之持久化和五种部署方式
查看>>