Python 字符串转二维列表

Python string to two dimensionals list

我有如下字符串:

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

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

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

请帮忙给我任何示例代码。

此致,

您的预期输出是一个元组列表,您可以使用 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', '')]

试试这个

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

得到这个:

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')]