自动格式化列表中的项目

时间:2019-07-10 03:39:00

标签: python list format

我如何正确格式化项目列表,而无需手动进行格式化?

xy_coords = [(15, 5),
(9, 0),
(3, 5),
(13, 7),
(21, 1),
(19, 22),
(22, 2),
(11, 11),
(10, 21),
(24, 2),
(19, 19)]

2 个答案:

答案 0 :(得分:2)

首先,变量xy_coords不是列表。如果运行那条线,将会得到一个错误。 忽略这一点,并假设xy_coordsString,它将看起来像这样:

xy_coords = '[(15, 5) (9, 0) (3, 5) (13, 7) (21, 1) (19, 22) (22, 2) (11, 11) (10, 21) (24, 2) (19, 19)]'

(请注意,上面的单引号使xy_coords成为字符串)

现在,要在每个元组之间添加逗号,您可以执行以下操作:

new = ''
a = string.split(') ')
for k in a[:-1]:
    new+=(k+'), ')
new+=a[-1]
print(new)

输出

[(15, 5), (9, 0), (3, 5), (13, 7), (21, 1), (19, 22), (22, 2), (11, 11), (10, 21), (24, 2), (19, 19)]

答案 1 :(得分:1)

如果int是一个字符串,我本可以使用RegEx查找所有出现的对(x,y),然后将字符串转换为整数。

这可以通过re.findall函数来完成。 RegEx可以很小,并且只能匹配两个坐标。通过在RegEx中使用组,该函数将返回您需要转换为import re xy_coords = '[(15, 5) (9, 0) (3, 5) (13, 7) (21, 1) (19, 22) (22, 2) (11, 11) (10, 21) (24, 2) (19, 19)]' xy_coords = [ tuple(map(int, coord)) for coord in re.findall(r"(\d+),\s*(\d+)", xy_coords) ] print(xy_coords) 的字符串元组的列表。

例如:

[(15, 5), (9, 0), (3, 5), (13, 7), (21, 1), (19, 22), (22, 2), (11, 11), (10, 21), (24, 2), (19, 19)]

结果是一个int元组列表:

{{1}}