提问人:Дмитрий Насонов 提问时间:8/28/2023 最后编辑:mozwayДмитрий Насонов 更新时间:8/28/2023 访问量:36
以某种方式拆分字符串
Split the string in a certain way
问:
我有一个字符串:
50 5 10 4 48 34
其中每个值对应于以下表示法方案:
x1 y1 x2 y2 x3 y3
也就是说,这意味着:
x1 = 50
y1 = 5
etc.
在输入时,一个以空格分隔的数字字符串被写入我的变量,我想从中获取一个列表,其中存储坐标的元组以逗号分隔,即:
[(50, 5), (10, 4), (48, 34)]
请告诉我该怎么做?
答:
1赞
Alicia Stone
8/28/2023
#1
试试这个 -
input_string = "50 5 10 4 48 34"
numeric_values = input_string.split()
coordinates = [(int(numeric_values[i]), int(numeric_values[i + 1])) for i in range(0, len(numeric_values), 2)]
print(coordinates)
评论
0赞
Дмитрий Насонов
8/28/2023
如果检查编写的代码,将出现错误:列表索引超出范围
1赞
mozway
8/28/2023
#2
从 python 3.12 开始,您可以在拆分
字符串上使用 itertools.batched
方法:
from itertools import batched
s = '50 5 10 4 48 34'
out = list(batched(map(int, s.split()), 2))
对于以前的版本,这个迭代器技巧总是有效的:
s = '50 5 10 4 48 34'
i = map(int, s.split())
out = list(zip(i, i))
# or as a one-liner for python ≥ 3.8
out = list(zip((i:=map(int, s.split())), i))
输出:[(50, 5), (10, 4), (48, 34)]
评论