如何将列表中的字符串显示为单独的元素


data = [
[',Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday'],
['8,1,1,0,1,1,0,0'], ['9,0,0,1,0,0,1,0'], ['10,0,0,1,0,0,1,0'],
['11,0,0,0,0,0,0,0'], ['12,0,0,0,0,0,0,0'], ['13,0,0,0,0,0,0,0'],
['14,0,0,0,0,0,0,0'], ['15,0,0,0,0,0,0,0'], ['16,0,0,0,1,0,2,3'],
['17,1,1,2,0,1,1,0'], ['18,1,0,0,2,1,1,2']
]

我有这些嵌套列表的数据。然而,嵌套列表中的数据被视为一个大字符串,如

[',Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday'] 

等,但我希望数据像这样显示而不是

["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]

等,所以我可以通过索引访问信息。我想对所有的嵌套列表做这个。然而,不太确定如何做到这一点,甚至如何开始,我想可以通过循环开始,但然后将其分成元素似乎是困难的部分。

假设每个内部列表中只有一个值:

list(map(lambda x: x[0].split(","), data))

一种可能性是使用列表推导式和.split()方法。

x = [item[0].split(",") for item in data]

使用str.split和列表推导式:

data = [[',Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday'],
['8,1,1,0,1,1,0,0'],
['9,0,0,1,0,0,1,0'],
]
# Split the sublists on a comma:
data = [s.split(',') for sublist in data for s in sublist]
# Clean up the first sublist: remove the leading empty string: 
data[0] = [s for s in data[0] if s]
# Clean up the rest of the sublists: convert string to integer:
data[1:] = [[int(x) for x in sublist] for sublist in data[1:]]
print(data)
# [['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'], [8, 1, 1, 0, 1, 1, 0, 0], [9, 0, 0, 1, 0, 0, 1, 0]]

最新更新