我如何正确格式化项目列表,而无需手动进行格式化?
xy_coords = [(15, 5),
(9, 0),
(3, 5),
(13, 7),
(21, 1),
(19, 22),
(22, 2),
(11, 11),
(10, 21),
(24, 2),
(19, 19)]
答案 0 :(得分:2)
首先,变量xy_coords
不是列表。如果运行那条线,将会得到一个错误。
忽略这一点,并假设xy_coords
是String
,它将看起来像这样:
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}}