首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >得到这个结果,我如何修正数字6?> [1,2,3,4,5,[6]]

得到这个结果,我如何修正数字6?> [1,2,3,4,5,[6]]
EN

Stack Overflow用户
提问于 2017-07-31 19:53:54
回答 3查看 89关注 0票数 0

我正在做这个练习,这需要我连接2已经排序的列表,我不知道为什么输出是这样的。

而且,我已经习惯了C,所以我通常会编写大量“无用”的代码,而我只需要使用python方法就可以做到这一点。你认为如果我继续做解题练习,我就会自然而然地用节奏曲的方式思考。如果有更简单的办法解决这个问题,请告诉我。

我的代码:

代码语言:javascript
复制
    def conc_sorted(list1, list2):
    result = []
    i = 0
    while True:
        if not list1:             # checking if both lists still have anything in it
            result.append(list2)  # to avoid 'out of range'
            break
        elif not list2:
            result.append(list1)
            break
        else:           
            result.append(compare(list1, list2)) # calls compare() and appends whatever it pops     

    print result

def compare(list1, list2):
    if (list1[0] < list2[0]):       
        return list1.pop(0)
    else:   
        return list2.pop(0)
# exemple    
list1 = [1, 4, 6]
list2 = [2, 3, 5]
conc_sorted(list1, list2)

产出> [1,2,3,4,5,6]

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-07-31 19:57:04

基本大小写是在结果中附加单个元素列表。您需要将.append更改为.extend

代码语言:javascript
复制
if not list1:             
    result.extend(list2) 
    break
elif not list2:
    result.extend(list1)
    break
票数 2
EN

Stack Overflow用户

发布于 2017-07-31 20:28:26

您应该在这里使用extend操作而不是追加,因为append一次只接受单个输入(实体)。还有耶!我有一个更简单的代码来解决你的问题。

x=[1,4,6]

y=[2,3,5]

z=x+y

z.sort()

print z

票数 0
EN

Stack Overflow用户

发布于 2017-07-31 20:01:18

代码语言:javascript
复制
sorted (list1 + list2)

1,2,3,4,5,6

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45424254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档