Python 在列表中合并浮动

Python 在列表中合并浮动,python,list,python-3.x,Python,List,Python 3.x,我有一份清单,其中包括: [['Esté', 'Double', 'Medium', ' £10 ', '0.5', nan, nan, nan, 254.0, 239.0, 224.0, 717.0], ['Esté', 'Double', 'Medium', ' £10 ', '1.0', nan, nan, nan, 248.0, 224.0, 205.0, 677.0]] 我希望前三个浮动合并在一起,如下所示: [['Esté', 'Double', 'Medium', ' £10 '

我有一份清单,其中包括:

[['Esté', 'Double', 'Medium', ' £10 ', '0.5', nan, nan, nan, 254.0, 239.0, 224.0, 717.0],
['Esté', 'Double', 'Medium', ' £10 ', '1.0', nan, nan, nan, 248.0, 224.0, 205.0, 677.0]]
我希望前三个浮动合并在一起,如下所示:

[['Esté', 'Double', 'Medium', ' £10 ', '0.5', nan, nan, nan, 254239224, 717.0],
['Esté', 'Double', 'Medium', ' £10 ', '1.0', nan, nan, nan, 24822205, 677.0]]
我需要将最终的浮动保留为它自己的元素。这三个浮点数需要将数据类型更改为int以删除小数点,然后需要将它们合并为一个元素。我很难知道如何才能做到这一点

e、 g


为了便于理解,我将其分为三个步骤;您可以将其作为单行派生

slice = src[-4:-1] # This grabs the three items
big_str = ''.join([str(int(x)) for x in slice])
big_int = int(big_str)
在此之后,只需将原始项目重新粘贴在一起:

src = src[:-4] + [big_int] + src[-1]
这会让你行动起来吗?

加入这些浮动 254.0239.0224.0->254239224

for l in list_of_lists:
  floats = l[index_of_first_float:index_of_last_float+1]
  concat = ''.join([str(int(f)) for f in floats])
  ...

您需要迭代输入以获得每个列表。从这里开始,使用列表切片将n-4到n-1元素合并并作为列表的一部分

由于这些元素是浮点数,您希望输出为忽略小数的字符串,因此可以使用lambda迭代每个[-4:-1]中的每个元素,例如[254.0、239.0、224.0],将其转换为int,然后转换为string。['254'、'239'、'224.0']将作为结果。要合并它们,请使用str.join!然后,将合并结果插入列表的正确位置

就是

print [each[:-4]+[''.join(map(lambda x:str(int(x)),each[-4:-1]))]+[each[-1]] for each in r]

您可以使用map和lambda进行此操作

map(lambda x: x[:-4]+[int(''.join(map(str, (map(int, x[-4:-1])))))]+[x[-1]], list_of_lists)
输出:

[['Esté', 'Double', 'Medium', ' £10 ', '0.5', nan, nan, nan, 254239224, 717.0],['Esté', 'Double', 'Medium', ' £10 ', '1.0', nan, nan, nan, 24822205, 677.0]]

把它们转换成字符串,然后它很容易你有什么特别的麻烦?向我们展示您的代码,并描述它如何没有满足您的期望。
[['Esté', 'Double', 'Medium', ' £10 ', '0.5', nan, nan, nan, 254239224, 717.0],['Esté', 'Double', 'Medium', ' £10 ', '1.0', nan, nan, nan, 24822205, 677.0]]