将字符列表合并为用逗号分隔的字符串列表

时间:2018-07-18 18:43:58

标签: python list

我想转换这种格式:

['1', '1', ',', 'V', 'e', 'r', 'n', 'a', ' ', 'F', 'r', 'a', 'n', 'k', 'l', 'i', 'n', ',', 'v', '.', 'f', 'r', 'a', 'n', 'k', 'l', 'i', 'n', '@', 'g', 'm', 'a', 'i', 'l', '.', 'c', 'o', 'm', ',', '1']

转换为这种格式:

[11, Verna Franklin, v.franklin@gmail.com, 1]

3 个答案:

答案 0 :(得分:2)

s = ['1', '1', ',', 'V', 'e', 'r', 'n', 'a', ' ', 'F', 'r', 'a', 'n', 'k', 'l', 'i', 'n', ',', 'v', '.', 'f', 'r', 'a', 'n', 'k', 'l', 'i', 'n', '@', 'g', 'm', 'a', 'i', 'l', '.', 'c', 'o', 'm', ',', '1']
s = ''.join(s)
s.split(',')

答案 1 :(得分:0)

这会将字符列表转换为标准的python整数和字符串列表:

from ast import literal_eval

s = ['1', '1', ',', 'V', 'e', 'r', 'n', 'a', ' ', 'F', 'r', 'a', 'n', 'k', 'l', 'i', 'n', ',', 'v', '.', 'f', 'r', 'a', 'n', 'k', 'l', 'i', 'n', '@', 'g', 'm', 'a', 'i', 'l', '.', 'c', 'o', 'm', ',', '1']

n = "["
for i in f"{''.join(s)}".split(','):
    if i.isnumeric():
        n += f"{i}, "
    else:
        n += f'"{i}", '
n += "]"

n = literal_eval(n)
print(n)

打印:

[11, 'Verna Franklin', 'v.franklin@gmail.com', 1]

答案 2 :(得分:0)

您可以使用itertools.groupby

import itertools
s = ['1', '1', ',', 'V', 'e', 'r', 'n', 'a', ' ', 'F', 'r', 'a', 'n', 'k', 'l', 'i', 'n', ',', 'v', '.', 'f', 'r', 'a', 'n', 'k', 'l', 'i', 'n', '@', 'g', 'm', 'a', 'i', 'l', '.', 'c', 'o', 'm', ',', '1']
final_s = [''.join(b) for a, b in itertools.groupby(s, key=lambda x:x==',') if not a]

输出:

['11', 'Verna Franklin', 'v.franklin@gmail.com', '1']