Python字符串到二维列表

时间:2015-03-25 09:29:07

标签: python list flask

我的字符串如下:

FuntionStr='AccName,S,Balance,N,AccrInterest,N'

我想将字符串转换为二维列表:

FuntionList=[('AccName','S'),('Balance','N'),('AccrInterest','N')]

请帮我提供任何示例代码。

此致

3 个答案:

答案 0 :(得分:1)

要得到这个:

FuntionStr='AccName,S,Balance,N,AccrInterest,N'
my_list = FuntionStr.split(',')
print my_list
print zip(my_list[::2], my_list[1::2])

输出:

[('AccName','S'),('Balance','N'),('AccrInterest','N')]

答案 1 :(得分:0)

您的预期输出是一个元组列表,您可以使用zipstr.split和使用iter来获取元组列表,这比切片更有效。

FuntionStr='AccName,S,Balance,N,AccrInterest,N'
it = iter(FuntionStr.split(","))

print(list(zip(it,it)))
[('AccName', 'S'), ('Balance', 'N'), ('AccrInterest', 'N')]

如果您在拆分后有一个不均匀的长度列表,并且您不想丢失任何数据,则可以使用zip_longest

FuntionStr='AccName,S,Balance,N,AccrInterest,N,foo'
it = iter(FuntionStr.split(","))
from itertools import zip_longest
print(list(zip_longest(it, it,fillvalue="")))]
('AccName', 'S'), ('Balance', 'N'), ('AccrInterest', 'N'), ('foo', '')]

答案 2 :(得分:0)

试试这个

temp = FuntionStr.split(',')
>>>zip(temp[::2], temp[1::2])
[('AccName', 'S'), ('Balance', 'N'), ('AccrInterest', 'N')]