如何在Python中将字符串转换为这种类型的列表

Joh*_*ott 0 python list python-3.x

我正在使用一个库,该库返回一个Python列表。

当我打印该列表时,它看起来像这样:

print(face_locations)
Run Code Online (Sandbox Code Playgroud)
[(92, 254, 228, 118), (148, 661, 262, 547)]
Run Code Online (Sandbox Code Playgroud)
print(type(face_locations))
Run Code Online (Sandbox Code Playgroud)
<class 'list'>
Run Code Online (Sandbox Code Playgroud)

我有一个值字符串:"92 254 228 118;148 661 262 547"

我想将此字符串转换为相同的数据类型。

到目前为止,我做了什么:

face_locations= "92 254 228 118;148 661 262 547"
face_locations= face_locations.split(";")
for i in range(len(face_locations)):
    face_locations[i] = face_locations[i].split(" ")
Run Code Online (Sandbox Code Playgroud)

两者都是列表...但是当我稍后在代码中运行此函数时,出现错误:

for (top, right, bottom, left), face_encoding in zip(face_locations, face_encodings): 
    ....do something
Run Code Online (Sandbox Code Playgroud)

Sal*_*Ali 5

使用列表理解并将的元素映射strint

face_locations= "92 254 228 118;148 661 262 547"
face_locations= face_locations.split(";")
[tuple(map(int, elem.split(' '))) for elem in face_locations]
Run Code Online (Sandbox Code Playgroud)

输出:

[(92, 254, 228, 118), (148, 661, 262, 547)]
Run Code Online (Sandbox Code Playgroud)