我有这些清单:
sqvaluelist = []
valuelist = [(10.5,), (20.5,), (21.5,), (70.0,), (34.5,)]
Run Code Online (Sandbox Code Playgroud)
我想在valuelist上应用此代码:
for value in valuelist:
valuesquared = value*value
sqvaluelist.append(valuesquared,)
Run Code Online (Sandbox Code Playgroud)
但是我收到了这个错误:
TypeError: can't multiply sequence by non-int of type 'tuple'
我想我知道这个错误背后的原因,这是因为每个值都在一个单独的元组中.
我的问题是,是否有任何方法可以将这些值从各自的元组中删除,然后将它们转换为类似的列表
valuelist = [10.5, 20.5, 21.5, 70.0, 34.5]
Run Code Online (Sandbox Code Playgroud)
没有手动编辑现有列表的结构,以便可以执行for循环?
编辑:我道歉!他们实际上是元组!在每个值后添加逗号.抱歉!
然后就是
import itertools
list(itertools.chain(*valuelist))
Run Code Online (Sandbox Code Playgroud)
要做
valuelist = [(10.5,), (20.5,), (21.5,), (70.0,), (34.5,)]
Run Code Online (Sandbox Code Playgroud)
成
valuelist = [10.5, 20.5, 21.5, 70.0, 34.5]
Run Code Online (Sandbox Code Playgroud)
我会使用列表理解
valuelist = [x[0] for x in valuelist]
Run Code Online (Sandbox Code Playgroud)