2016-10-27 26 views
0

我有一个输入:从无序串取号码,并将其转换为一个列表用逗号分隔每个号码

L1 = input() 

我所要的输出是:

[1, 7, -3, 10, 42, 5, 0, 17] 

输入是 “1 7 -3 10 42 5 0 17”,这意味着当我打印L1,它产生:

1 7 -3 10 42 5 0 17 

使用INP(输入())给我“无效字面对于基数为10的int():“。 使用.split不会更改输出。

如果我得到了用户输入的列表,然后它产生:

[1 7 -3 10 42 5 0 17] 

的数字串不能单独输入,则必须输入作为一个整体,然后选择“分裂”用逗号。然而;

L1 = input() 
L1.split() or L1.split(",") 
print(L1) 

刚刚得到...

1 7 -3 10 42 5 0 17 

回答

0

为了L1到正确更新,你必须为它分配值L1.split()返回。

L1 = "1 7 -3 10" 
L1 = L1.split() 
print(L1) 

输出: ['1', '7', '-3', '10']

或者,如果你想要一个整数列表:

L1 = "1 7 -3 10" 
L1 = [int(i) for i in L1.split()] 
print(L1) 

输出: [1, 7, -3, 10]

+0

谢谢您的回答,这是我需要的。 –

+0

没问题,如果它按照你计划的方式计算出来,可以随意标记为已解决:) – Carl

0

如果您想通过空间分割或逗号,你的肩膀d使用正则表达式分割。另外,拆分项目类型为str,您可能希望将它们转换为int

下面的代码:

import re 
L1 = input() 
L1 = [int(i) for i in re.split('[\s,]+', L1) if i] 
print(L1) 
相关问题