对字符串列表求和的Pythonic方法

对字符串列表求和的Pythonic方法,python,string,list,nested,Python,String,List,Nested,我已经找到了一种方法来做我想做的事,但是我想知道是否有一种方法可以把这件事简化到一行 我有一个字符串列表列表,与有答案的数字列表相比:[列表的总和;返回总和列表 示例列表: list = [['T=-40F A=0K', 'T=-15F A=0K', 'T=59F A=0K', 'T=98F A=0K', 'T=120F A=0K'], ['T=-40F A=10K','T=-15F A=10K','T=59F A=10K','T=98F A=10K','T=120F A=10K']] 示例

我已经找到了一种方法来做我想做的事,但是我想知道是否有一种方法可以把这件事简化到一行

我有一个字符串列表列表,与有答案的数字列表相比:[列表的总和;返回总和列表

示例列表:

list = [['T=-40F A=0K', 'T=-15F A=0K', 'T=59F A=0K', 'T=98F A=0K', 'T=120F A=0K'],
 ['T=-40F A=10K','T=-15F A=10K','T=59F A=10K','T=98F A=10K','T=120F A=10K']]
示例输出:

['T=-40F A=0K', 'T=-15F A=0K', 'T=59F A=0K', 'T=98F A=0K', 'T=120F A=0K', 'T=-40F A=10K', 'T=-15F A=10K', 'T=59F A=10K', 'T=98F A=10K', 'T=120F A=10K']
我可以使用此方法连接这些:

new = []
for i in [['T=%.0fF A=%.0fK'%(t,a)for t in TEMP] for a in ALT]:
    new = new + i
有人找到什么吗

至于应用程序,我正在向matplotlib绘图添加图例

这将非常简单,并且是sumlist使用列表理解的一个很棒的功能:


您不应该使用list作为变量名。

您希望展平iterable-存在就是为了这个目的:

>>> data = ...
>>> import itertools
>>> list(itertools.chain.from_iterable(data))
['T=-40F A=0K', 'T=-15F A=0K', 'T=59F A=0K', 'T=98F A=0K', 'T=120F A=0K', 'T=-40F A=10K', 'T=-15F A=10K', 'T=59F A=10K', 'T=98F A=10K', 'T=120F A=10K']

它返回一个迭代器,因此如果需要列表,您可以使用列表,或者只使用迭代器。

您可以使用

请不要将列表用作变量名,它会隐藏内置项。

请尝试-


你的输入和输出是如何对应的?你想用new=[]做什么和new=new+1?@Inbar Rose:我不确定这是一个重复的答案,因为所有这些答案都是多行的。@hivert:我在寻找更像Rohit Jain提供的东西……没有必要导入anything@CodeMode导入模块并不是你应该避免的事情——模块的存在是有原因的为您实现这些功能。@CodeMode:Rohit Jain的代码与comprehension\u flatte in的代码相同。使用*解压列表效率低下-from\u iterable就是为了这个目的。谢谢!我应该在列表上阅读的回复很好。comprehension不知道。谢谢您的评论。将其添加到答案中。@CodeMode这里没有@CodeMode:List comprehension在Rohit Jain的回答中使用。请注意,与itertools.chain.from_iterable相比,List comp在执行此任务时速度较慢,可读性较差。请注意,我的列表非常小。我更倾向于减少总程序大小,我不希望导入anything@CodeMode一行代码在siz方面并不重要不过,它会使您的代码更可读、更高效。@CodeMode。请不要害怕导入模块。itertools是一个非常宝贵的模块,您不会想错过它,它具有非常有用和高效的功能。您应该学习使用库。它们的存在是有原因的。无论如何,谢谢你们!它们都是非常好的解决方案并且真的帮助我完成我的工程工作量!
>>> data = ...
>>> import itertools
>>> list(itertools.chain.from_iterable(data))
['T=-40F A=0K', 'T=-15F A=0K', 'T=59F A=0K', 'T=98F A=0K', 'T=120F A=0K', 'T=-40F A=10K', 'T=-15F A=10K', 'T=59F A=10K', 'T=98F A=10K', 'T=120F A=10K']
>>> testList =[['T=-40F A=0K', 'T=-15F A=0K', 'T=59F A=0K', 'T=98F A=0K', 'T=120F A=0K'],
 ['T=-40F A=10K','T=-15F A=10K','T=59F A=10K','T=98F A=10K','T=120F A=10K']]
>>> 
>>> from itertools import chain
>>> chain(*testList)
<itertools.chain object at 0x02B1E910>
>>> list(chain(*testList))
['T=-40F A=0K', 'T=-15F A=0K', 'T=59F A=0K', 'T=98F A=0K', 'T=120F A=0K', 'T=-40F A=10K', 'T=-15F A=10K', 'T=59F A=10K', 'T=98F A=10K', 'T=120F A=10K']
>>> list(chain.from_iterable(testList))
['T=-40F A=0K', 'T=-15F A=0K', 'T=59F A=0K', 'T=98F A=0K', 'T=120F A=0K', 'T=-40F A=10K', 'T=-15F A=10K', 'T=59F A=10K', 'T=98F A=10K', 'T=120F A=10K']
from itertools import chain
result = list(chain.from_iterable(your_list))