将字符串列表转换为跳过第一项的浮点数和字符串的嵌套列表
Converting a list of strings into a nested list of floats and strings skipping the first item
我想将某个字符串列表转换为另一个列表中的分隔列表,该列表将包含字符串和浮点数。
我尝试使用 append
方法来获取结果,但我在制作嵌套列表时遇到了问题。有没有办法只得到我的 output
的最后一行作为结果?这是我的代码:
def func(L):
n = []
lists = [i.split(',') for i in L]
for xlist in lists:
xlist[1:] = [float(item) for item in xlist[1:]]
n.append(xlist)
print(n)
if __name__ == '__main__':
func(['PersonX, 10, 92, 70', 'PersonY, 60, 70', 'PersonZ, 98.5, 1100, 95.5, 38'])
OUTPUT: [['PersonX', 10.0, 92.0, 70.0]]
[['PersonX', 10.0, 92.0, 70.0], ['PersonY', 60.0, 70.0]]
[['PersonX', 10.0, 92.0, 70.0], ['PersonY', 60.0, 70.0], ['PersonZ', 98.5, 1100.0, 95.5, 38.0]]
EXPECTED OUTPUT: [['PersonX', 10.0, 92.0, 70.0], ['PersonY', 60.0, 70.0], ['PersonZ', 98.5, 1100.0, 95.5, 38.0]]
在此先感谢您的帮助。
只需取消循环外的 print
缩进,只在最后执行一次操作:
def func(L):
n = []
lists = [i.split(',') for i in L]
for xlist in lists:
xlist[1:] = [float(item) for item in xlist[1:]]
n.append(xlist)
print(n)
但是请注意,通过使用 print
,您实际上并没有输出包含整数的列表。您应该使用 return n
我们可以使用一些列表 unpacking 和列表串联来完成您要查找的结果:
def func(L):
n = []
for value in L:
a, *b = value.split(',')
n.append([a] + [float(item) for item in b])
print(n)
我想将某个字符串列表转换为另一个列表中的分隔列表,该列表将包含字符串和浮点数。
我尝试使用 append
方法来获取结果,但我在制作嵌套列表时遇到了问题。有没有办法只得到我的 output
的最后一行作为结果?这是我的代码:
def func(L):
n = []
lists = [i.split(',') for i in L]
for xlist in lists:
xlist[1:] = [float(item) for item in xlist[1:]]
n.append(xlist)
print(n)
if __name__ == '__main__':
func(['PersonX, 10, 92, 70', 'PersonY, 60, 70', 'PersonZ, 98.5, 1100, 95.5, 38'])
OUTPUT: [['PersonX', 10.0, 92.0, 70.0]]
[['PersonX', 10.0, 92.0, 70.0], ['PersonY', 60.0, 70.0]]
[['PersonX', 10.0, 92.0, 70.0], ['PersonY', 60.0, 70.0], ['PersonZ', 98.5, 1100.0, 95.5, 38.0]]
EXPECTED OUTPUT: [['PersonX', 10.0, 92.0, 70.0], ['PersonY', 60.0, 70.0], ['PersonZ', 98.5, 1100.0, 95.5, 38.0]]
在此先感谢您的帮助。
只需取消循环外的 print
缩进,只在最后执行一次操作:
def func(L):
n = []
lists = [i.split(',') for i in L]
for xlist in lists:
xlist[1:] = [float(item) for item in xlist[1:]]
n.append(xlist)
print(n)
但是请注意,通过使用 print
,您实际上并没有输出包含整数的列表。您应该使用 return n
我们可以使用一些列表 unpacking 和列表串联来完成您要查找的结果:
def func(L):
n = []
for value in L:
a, *b = value.split(',')
n.append([a] + [float(item) for item in b])
print(n)