【发布时间】:2017-12-13 21:53:33
【问题描述】:
我有一个列表 L = [1, 2, 3, 5n, 4, 9, 6n, 1, 3, 4, 5n]。
在某些元素中出现的 n 表示分组的结束。有没有办法把这个列表变成一个元组列表?
例如 [(1, 2, 3, 5n), (4, 5, 9, 6n), (1, 3, 4, 5n)]?
我知道我可以创建一个迭代器 it = iter(L),然后压缩迭代器以创建一个元组列表,但我不知道如何使用“n”标志来表示创建一个元组.
n 总是相同的并且总是表示分组的结束。谢谢!
编辑:列表中的所有元素都是字符串,输出也应该是字符串的元组。
【问题讨论】:
-
正则匹配?
-
您的列表将不起作用,因为 5n 不提供 Python 已知的任何类型。它可以是 ['1', '2', '3', '5n'] 或 [1, 2, 3, '5n']。
-
如果这些是字符串,你可以使用
if element.endswith('n') -
列表的所有元素都是字符串,如果需要我可以更改。
-
创建元组直到 n 然后将元组附加到新列表中。你什么都没试过,是吗?