#python #python-3.x #string #list #tuples
#питон #python-3.x #строка #Список #кортежи
Вопрос:
bounds = reader.readtext(np.array(images[0]), min_size=0,slope_ths=0.2, ycenter_ths=0.7, height_ths=0.6,width_ths=0.8,decoder='beamsearch',beamWidth=10) print(bounds)
Выходные данные для приведенного выше кода являются
У меня есть строковый формат, такой как
[([[1004, 128], [1209, 128], [1209, 200], [1004, 200]], 'EC~L', 0.18826377391815186), ([[177, 179], [349, 179], [349, 241], [177, 241]], 'OKI', 0.9966741294455473), ([[180, 236], [422, 236], [422, 268], [180, 268]], 'Oki Eleclric Industry Co', 0.8091106257361781), ([[435, 243], [469, 243], [469, 263], [435, 263]], 'Ltd', 0.9978489622393302), ([[180, 265], [668, 265], [668, 293], [180, 293]], '4-11-22 , Shibaura, Minalo-ku, Tokyo 108-855| Japan', 0.6109240973537998), ([[180, 291], [380, 291], [380, 318], [180, 318]], 'Tel 81-3-5440-4884', 0.9406430290171053)]
Как написать код на python, который печатает приведенный выше формат, аналогичный приведенному ниже:
[1004, 128, 1209, 128, 1209, 200, 1004, 200], 'EC~L' ################## [177, 179, 349, 179, 349, 241, 177, 241], 'OKI' ################## [180, 236, 422, 236, 422, 268, 180, 268], 'Oki Eleclric Industry Co' ################## [435, 243, 469, 243, 469, 263, 435, 263], 'Ltd' ################## [180, 265, 668, 265, 668, 293, 180, 293], '4-11-22 , Shibaura, Minalo-ku, Tokyo 108-855| Japan' ################## [180, 291, 380, 291, 380, 318, 180, 318], 'Tel 81-3-5440-4884'
Кто-нибудь может мне в этом помочь?
Ответ №1:
Я думаю, что внесу свой вклад в это однострочное решение.
print("n##################n".join(("{},n'{}'".format([x for item in items[0] for x in item], items[1])) for items in bounds))
Который создает точно такой же формат, как и желание спрашивающего:
[1004, 128, 1209, 128, 1209, 200, 1004, 200], 'EC~L' ################## [177, 179, 349, 179, 349, 241, 177, 241], 'OKI' ################## [180, 236, 422, 236, 422, 268, 180, 268], 'Oki Eleclric Industry Co' ################## [435, 243, 469, 243, 469, 263, 435, 263], 'Ltd' ################## [180, 265, 668, 265, 668, 293, 180, 293], '4-11-22 , Shibaura, Minalo-ku, Tokyo 108-855| Japan' ################## [180, 291, 380, 291, 380, 318, 180, 318], 'Tel 81-3-5440-4884'
Ответ №2:
Если я правильно понял:
for l, s, _ in bounds: print([lll for ll in l for lll in ll]) print(s) print('##################')
Выход:
[1004, 128, 1209, 128, 1209, 200, 1004, 200] EC~L ################## [177, 179, 349, 179, 349, 241, 177, 241] OKI ################## [180, 236, 422, 236, 422, 268, 180, 268] Oki Eleclric Industry Co ################## [435, 243, 469, 243, 469, 263, 435, 263] Ltd ################## [180, 265, 668, 265, 668, 293, 180, 293] 4-11-22 , Shibaura, Minalo-ku, Tokyo 108-855| Japan ################## [180, 291, 380, 291, 380, 318, 180, 318] Tel 81-3-5440-4884 ##################
Ответ №3:
Другое решение
from itertools import chain for numbers, description, _ in bounds: numbers = list(chain(*numbers)) print(f"{numbers},n" f"'{description}'n" "##################")
Выход:
[1004, 128, 1209, 128, 1209, 200, 1004, 200], 'EC~L' ################## [177, 179, 349, 179, 349, 241, 177, 241], 'OKI' ################## [180, 236, 422, 236, 422, 268, 180, 268], 'Oki Eleclric Industry Co' ################## [435, 243, 469, 243, 469, 263, 435, 263], 'Ltd' ################## [180, 265, 668, 265, 668, 293, 180, 293], '4-11-22 , Shibaura, Minalo-ku, Tokyo 108-855| Japan' ################## [180, 291, 380, 291, 380, 318, 180, 318], 'Tel 81-3-5440-4884' ##################