在 Python 的嵌套列表中拆分字符串并转换为浮点数?
Splitting strings within nested lists in Python and converting to float?
我正在尝试将嵌套的字符串列表拆分为嵌套的浮点数列表。我的嵌套列表如下:
nested = [['0.3, 0.4, 0.2', '0.5, 0.1, 0.3'], ['0.7, 0.4, 0.2'], ['0.4, 0.1, 0.3']]
我想要的输出是一个嵌套列表,其中这些值保留在它们的子列表中并转换为浮点数,如下所示:
nested = [[0.3, 0.4, 0.2, 0.5, 0.1, 0.3], [0.7, 0.4, 0.2], [0.4, 0.1, 0.3]]
尝试处理具有多个字符串(即第一个元素)的子列表时遇到了困难。我找到了一些示例,例如此处 ,但此代码仅处理具有一个字符串元素的子列表,我不确定如何将其应用于具有多个字符串的子列表。
我试图避免对任何内容进行硬编码,因为这是更大数据集的脚本的一部分,子列表长度可能会有所不同。
如果有人有任何想法,我将不胜感激。
好的,从你的例子开始:
myNestedList = [['0.3, 0.4, 0.2', '0.5, 0.1, 0.3'], ['0.7, 0.4, 0.2'], ['0.4, 0.1, 0.3']]
myOutputList = []
for subList in myNestedList:
tempList = []
for valueStr in sublist:
valueFloat = float( valueStr )
tempList.append( valueFloat )
myOutputList.append( tempList )
它看起来像那样。 (没有时间尝试,但非常接近正确)
result = [[float(t) for s in sublist for t in s.split(', ')] for sublist in nested]
相当于
result = []
for sublist in nested:
inner = []
for s in sublist:
for t in s.split(', '):
inner.append(float(t))
result.append(inner)
nested = [['0.3, 0.4, 0.2', '0.5, 0.1, 0.3'], ['0.7, 0.4, 0.2'], ['0.4, 0.1, 0.3']]
new_nested = [[float(number) for strings in sublist for number in strings.split(', ')] for sublist in nested]
print(new_nested)
new_nested = list()
for sublist in nested:
sublist_new_nested = list()
for strings in sublist:
for number in strings.split(', '):
sublist_new_nested.append(float(number))
new_nested.append(sublist_new_nested)
print(new_nested)
输出:
[[0.3, 0.4, 0.2, 0.5, 0.1, 0.3], [0.7, 0.4, 0.2], [0.4, 0.1, 0.3]]
[[0.3, 0.4, 0.2, 0.5, 0.1, 0.3], [0.7, 0.4, 0.2], [0.4, 0.1, 0.3]]
我正在尝试将嵌套的字符串列表拆分为嵌套的浮点数列表。我的嵌套列表如下:
nested = [['0.3, 0.4, 0.2', '0.5, 0.1, 0.3'], ['0.7, 0.4, 0.2'], ['0.4, 0.1, 0.3']]
我想要的输出是一个嵌套列表,其中这些值保留在它们的子列表中并转换为浮点数,如下所示:
nested = [[0.3, 0.4, 0.2, 0.5, 0.1, 0.3], [0.7, 0.4, 0.2], [0.4, 0.1, 0.3]]
尝试处理具有多个字符串(即第一个元素)的子列表时遇到了困难。我找到了一些示例,例如此处
我试图避免对任何内容进行硬编码,因为这是更大数据集的脚本的一部分,子列表长度可能会有所不同。
如果有人有任何想法,我将不胜感激。
好的,从你的例子开始:
myNestedList = [['0.3, 0.4, 0.2', '0.5, 0.1, 0.3'], ['0.7, 0.4, 0.2'], ['0.4, 0.1, 0.3']]
myOutputList = []
for subList in myNestedList:
tempList = []
for valueStr in sublist:
valueFloat = float( valueStr )
tempList.append( valueFloat )
myOutputList.append( tempList )
它看起来像那样。 (没有时间尝试,但非常接近正确)
result = [[float(t) for s in sublist for t in s.split(', ')] for sublist in nested]
相当于
result = []
for sublist in nested:
inner = []
for s in sublist:
for t in s.split(', '):
inner.append(float(t))
result.append(inner)
nested = [['0.3, 0.4, 0.2', '0.5, 0.1, 0.3'], ['0.7, 0.4, 0.2'], ['0.4, 0.1, 0.3']]
new_nested = [[float(number) for strings in sublist for number in strings.split(', ')] for sublist in nested]
print(new_nested)
new_nested = list()
for sublist in nested:
sublist_new_nested = list()
for strings in sublist:
for number in strings.split(', '):
sublist_new_nested.append(float(number))
new_nested.append(sublist_new_nested)
print(new_nested)
输出:
[[0.3, 0.4, 0.2, 0.5, 0.1, 0.3], [0.7, 0.4, 0.2], [0.4, 0.1, 0.3]]
[[0.3, 0.4, 0.2, 0.5, 0.1, 0.3], [0.7, 0.4, 0.2], [0.4, 0.1, 0.3]]