在python中将列表分解为列表?

在python中将列表分解为列表?,python,arrays,list,Python,Arrays,List,我有以下字符串列表: data = ["1","0","1","<>","0","1","0","<>","1","0","1"] 例如,一个列表列表,其中每个列表由分隔,结果字符串转换为整数。您可以使用itertools.groupby在每个处进行有效分区,然后在键不为True的结果组(例如:它是)处转换为int,例如: from itertools import groupby data = ["1","0","1","<>","0","1","0",

我有以下
字符串列表

data = ["1","0","1","<>","0","1","0","<>","1","0","1"]

例如,一个列表列表,其中每个列表由
分隔,结果字符串转换为整数。

您可以使用
itertools.groupby
在每个
处进行有效分区,然后在键不为
True
的结果组(例如:它是
)处转换为
int
,例如:

from itertools import groupby

data = ["1","0","1","<>","0","1","0","<>","1","0","1"]
new_date = [[int(i) for i in g] for k, g in groupby(data, '<>'.__ne__) if k]
# [[1, 0, 1], [0, 1, 0], [1, 0, 1]]
从itertools导入groupby
数据=[“1”、“0”、“1”、“0”、“1”、“0”、“0”、“1”、“0”、“1”、“0”、“1”]
新日期=[[int(i)for i in g]for k,g in groupby(数据,”。[u_ne___)如果k]
# [[1, 0, 1], [0, 1, 0], [1, 0, 1]]

您可以尝试将列表理解与连接和拆分结合使用:

your_list = [[int(j) for j in i.split()] for i in ' '.join(data).split('<>')]
your_list=[[int(j)for j in i.split()]for i in'。加入(数据).split(“”)]

我建议您使用更具功能性的解决方案:

data = ["1","0","1","<>","0","1","0","<>","1","0","1"]
reduce(lambda a, b: a[:-1] + [a[-1] + [int(b)]] if b != '<>' else a + [[]], data, [[]])
data=[“1”、“0”、“1”、“0”、“1”、“0”、“0”、“1”、“0”、“1”、“0”、“1”]
减少(λa,b:a[:-1]+[a[-1]+[int(b)],如果b!='',否则a+[[]],数据,[[]])
您也可以试试这个

l = ["1","0","1","<>","0","1","0","<>","1","0","1"]
m = []
x = []
j = []
for i in l:
    if  i == '<>':
        m.append(x)
        x = []
        j = []
    else:
        x.append(int(i))
        j.append(int(i))
m.append(j)
print(m)

你能分享一下你为解决这个问题所做的努力吗?我不认为这是一个重复,因为这些块的大小不一定是均匀的。@Andrewmage:的确,我的错误,重新打开了。糟糕的格式让我很失望。我测试了你的代码,但被以下错误阻止了:int()的文本无效,以10为基数:'@mahya.khazae:你的数据中有分数?@mahya.khazaee,所以你有一个
,当列表中有一个数字超过一位数时,它会失败。它如何区分
[“1”,“0”,“,”,…]
来自
[“10”,“,…]
?我现在修复了它,但问题似乎只与1和0有关。这可能有效,但男孩,这是一种丑陋的方法,而且很脆弱。@MartijnPieters它怎么脆弱?它工作起来没有任何失败的可能性。
l = ["1","0","1","<>","0","1","0","<>","1","0","1"]
m = []
x = []
j = []
for i in l:
    if  i == '<>':
        m.append(x)
        x = []
        j = []
    else:
        x.append(int(i))
        j.append(int(i))
m.append(j)
print(m)
[[1, 0, 1], [0, 1, 0], [1, 0, 1]]