为了账号安全,请及时绑定邮箱和手机立即绑定

如何在列表中输入负数

如何在列表中输入负数

慕容森 2021-08-14 13:36:31
我需要一些帮助,因为每当我输入一个负数时,列表会将其解释为一个单独的元素,因此一旦开始排序,它就会将所有负号放在开头。代码的最终目标是在不使用默认排序函数的情况下对 2 个合并列表进行排序。此外,如果有更好的方法来摆脱列表中的空格,我将不胜感激,因为目前我必须将列表转换为字符串并替换/去除空格导致的额外元素。list1 = list(input())list2 = list(input())mergelist = list1 + list2print(mergelist)def bubble_sort(X):    nums = list(X)    for i in range(len(X)):        for j in range(i+1, len(X)):            if X[j] < X[i]:                X[j], X[i] = X[i], X[j]    return Xmergelist = bubble_sort(mergelist)strmergelist = str(mergelist)strmergelist = strmergelist.replace("'", '')strmergelist = strmergelist.replace(",", '')strmergelist = strmergelist.strip('[]')strmergelist = strmergelist.strip()print(strmergelist)没有否定的列表的输出是:1 2 3 4 4 5 5但是,如果是负数,则变为:- - - - 1 2 3 3 4 4 5当我输入任何负数时,我第一个检查列表合并的打印函数看起来像这样(忽略空格,因为我稍后尝试删除它们):['1', ' ', '-', '2', ' ', '3', '3', ' ', '-', '4', ' ', '-', '4', ' ', '-', '5']
查看完整描述

1 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

list()不会将字符串解析为整数列表,而是将可迭代的项目转换为项目列表。要从控制台读取列表,请尝试以下操作:


def read_list():

    """

    read a list of integers from stdin

    """

    return list(map(int, input().split()))


list1 = read_list()

list2 = read_list()

input.split() 读取一行用户输入并将其用空格分隔 - 基本上是单词。


int() 可以将字符串转换为整数。


map(int, ...)返回一个适用int()于用户输入的每个“单词”的可迭代对象。


最后一次调用list()将把可迭代对象变成一个列表。


这也应该处理负数。


此外,我看到您想要打印没有额外字符的结果列表。我推荐这个:


print(' '.join(mergelist))


查看完整回答
反对 回复 2021-08-14
  • 1 回答
  • 0 关注
  • 276 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信