将字符串列表转换为 2 元组整数列表(以逗号分隔的元组)
Convert list of strings to list of 2-tuples of integers (& Comma seperated in Tuple)
我需要将字符串列表转换为元组。
我的列表如下所示:
list = ['[11. 5.]', '[ 3. 16.]', '[ 0. 25.]', '[ 2. 40.]',
列表由作为字符串的元组组成(不幸的是不是整数)。在元组中没有逗号分隔。尤其是跟逗号的组合让我很郁闷
我在这里找到了类似的解决方案,但不知何故我无法将逗号放入元组中:
背景:该列表表示图像像素的 X 和 Y 坐标,我想将其变黑。像这样(第一行):
New_Image[list[0]] = 0
您可以使用正则表达式捕获列表项中的每个整数,然后按如下方式从中形成元组:
import re
ls= ['[11. 5.]', '[ 3. 16.]', '[ 0. 25.]', '[ 2. 40.]']
n = re.findall(r'\d+', ''.join(ls))
# -> ['11', '5', '3', '16', '0', '25', '2', '40']
res = [tuple(map(int, [n[i], n[i + 1]])) for i in range(0, len(n) - 1, 2)]
# -> [(11, 5), (3, 16), (0, 25), (2, 40)]
我对句点“.”进行了拆分。在每一对上。
如果我们以第一对为例 '[11. 5.]',我在零索引中得到“[11”(sub.split(“。”)[0]),在第一个索引sub.split(“。”)[1]中得到“5”。
我在零索引中对方括号“[”进行了替换,并通过在两端添加圆括号将最终输出转换为元组。
list = ['[11. 5.]', '[ 3. 16.]', '[ 0. 25.]', '[ 2. 40.]']
new_list = [(int(sub.split(".")[0].replace("[","")),int(sub.split(".")[1]) ) for sub in list]
print(new_list)
我需要将字符串列表转换为元组。 我的列表如下所示:
list = ['[11. 5.]', '[ 3. 16.]', '[ 0. 25.]', '[ 2. 40.]',
列表由作为字符串的元组组成(不幸的是不是整数)。在元组中没有逗号分隔。尤其是跟逗号的组合让我很郁闷
我在这里找到了类似的解决方案,但不知何故我无法将逗号放入元组中:
背景:该列表表示图像像素的 X 和 Y 坐标,我想将其变黑。像这样(第一行):
New_Image[list[0]] = 0
您可以使用正则表达式捕获列表项中的每个整数,然后按如下方式从中形成元组:
import re
ls= ['[11. 5.]', '[ 3. 16.]', '[ 0. 25.]', '[ 2. 40.]']
n = re.findall(r'\d+', ''.join(ls))
# -> ['11', '5', '3', '16', '0', '25', '2', '40']
res = [tuple(map(int, [n[i], n[i + 1]])) for i in range(0, len(n) - 1, 2)]
# -> [(11, 5), (3, 16), (0, 25), (2, 40)]
我对句点“.”进行了拆分。在每一对上。 如果我们以第一对为例 '[11. 5.]',我在零索引中得到“[11”(sub.split(“。”)[0]),在第一个索引sub.split(“。”)[1]中得到“5”。 我在零索引中对方括号“[”进行了替换,并通过在两端添加圆括号将最终输出转换为元组。
list = ['[11. 5.]', '[ 3. 16.]', '[ 0. 25.]', '[ 2. 40.]']
new_list = [(int(sub.split(".")[0].replace("[","")),int(sub.split(".")[1]) ) for sub in list]
print(new_list)