我的字符串如下:
FuntionStr='AccName,S,Balance,N,AccrInterest,N'
我想将字符串转换为二维列表:
FuntionList=[('AccName','S'),('Balance','N'),('AccrInterest','N')]
请帮我提供任何示例代码。
此致
答案 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)
您的预期输出是一个元组列表,您可以使用zip
,str.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')]