【问题标题】:Changing a list of strings into integers将字符串列表更改为整数
【发布时间】:2015-10-24 09:03:59
【问题描述】:

我有以下整数字符串列表:

li = ['1', '2', '3', '4', '5', '6', '7']

我的代码需要什么才能使我的输出如下?:

1 2 3 4 5 6 7

我都试过了:

" ".join(str(val) for val in li)

" ".join(li)

但它们都不起作用。

我想去掉括号、引号和逗号。

【问题讨论】:

  • 你想把它保存为字符串,还是直接打印出来?
  • 我想保存它以便在其他地方使用它。 @TigerhawkT3
  • 这两种解决方案都应该已经可以工作了。请记住,如果您只是在解释器中输入一个表达式,它将输出返回对象的__repr__(),这将为此生成'1 2 3 4 5 6 7'。如果您不想要引号,请使用实际的 print() 函数。
  • 您的意思是将其打印到某个输出流,例如一个文件对象。首先按照建议进行操作:out = ' '.join( ['1','2','3'] )。接下来,f = open('test.txt', 'w')f.write( out ) ; f.close()print(out)。我必须假设这是您想要做的,因为您的语句 “摆脱括号,引号......等” 在谈论 python 例程中的变量时几乎没有意义。

标签: python string list python-3.x integer


【解决方案1】:

您可以使用mapint() 应用于列表中的每个元素:

map(int, ['1', '2', '3', '4', '5', '6', '7']) # [1, 2, 3, 4, 5, 6, 7]

如果您只想将数字打印为字符串,您可以这样做:

' '.join(['1', '2', '3', '4', '5', '6', '7']) # 1 2 3 4 5 6 7

【讨论】:

  • map(int, li) 也可以吗?我只是设置了一个不同的变量 list1 等于引号中的大数字列表 ['150', '230', '132', '184', '353'],做了 map(int, list1) 然后做了“ “.join(list1) 但我收到错误“ValueError:int() 以 10 为底的无效文字。” @alfasin
  • 这个问题之前已经回答过,例如stackoverflow.com/questions/10351772/…。 @alfasin - 这可能是拒绝投票的原因,但是当我查看问题时已经完成了。
  • @TrisNefzger 正确的反应应该是投票以 dup 结束 - 而不是反对答案。哦,好吧...感谢您的评论!
  • @qlzlahs 你混合了两个答案...我向你展示了两个选项 - 你应该使用第一个或第二个 - 不能同时使用两者;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-02
  • 2019-04-28
  • 2011-10-29
  • 2015-10-24
  • 1970-01-01
  • 2016-06-13
相关资源
最近更新 更多