как правильно использовать параметр sep в функции печати

Я экспериментировал со сборкой словарей в python. Пожалуйста, рассмотрите следующий код:

brad_pitt = {
'name': ['brad pitt'],
'profession': ['actor'],
'birthday': [ཎ.12.1963'],
'sign': ['sagittarius'],
'birthplace': ['shawnee / oklahoma (usa)'],
'nationality': ['usa'],
'height': [餎 cm'],
'weight': [ྈ kg'], 
'marital status': ['married'],
'sex': ['male'],
'ex-partner': ['gwyneth paltrow', 'jennifer aniston', 'angelina jolie'],
'eye color': ['blue'],
}

julia_roberts = {
'name': ['julia roberts'],
'profession': ['actor'],
'birthday': [མ.10.1967'],
'sign': ['scorpion'],
'birthplace': ['atlanta / georgia (usa)'],
'nationality': ['usa'],
'height': [餆 cm'],
'weight': [ཱུ kg'], 
'marital status': ['married'],
'sex': ['female'],
'ex-partner': ['liam neeson'],
'eye color': ['brown'],
}

george_clooney = {
'name': ['george clooney'],
'profession': ['actor'],
'birthday': [ག.05.1961'],
'sign': ['taurus'],
'birthplace': ['lexington / kentucky (usa)'],
'nationality': ['usa'],
'height': [餌 cm'],
'weight': [྆ kg'], 
'marital status': ['married'],
'sex': ['male'],
'ex-partner': ['naomi campbell', 'elle macpherson', 'renée zellweger', 'amal clooney'],
'eye color': ['brown'],
}

people = [brad_pitt, julia_roberts, george_clooney]

for person in people:
    for key, value in person.items():
        if len(value) > 1:
            print(f"{key.title()}: ", end="")
            for partner in value:
                print(f"{partner}".title(), sep=',', end="")
            print()
        else:
            print(f"{key.title()}: {value[0].title()}")
    print()

Я ожидал, что бывшие партнеры будут разделены запятой ...

Я не вижу ошибки в своем заявлении на печать.

Я использовал необязательный параметр sep, чтобы отделить разные записи от списка.

Всего 2 ответа


sep для передачи нескольких аргументов для print . Скорее установите end="," .

Еще лучше, просто сделайте это:

for key, value in person.items():
    print(f"{key.title()}: {','.join(v.title() for v in value)}")

sep используется, когда вы передаете список строк, которые нужно разделить, вы, кажется, передаете строки одну за другой в цикле for . Я бы либо удалил цикл for и просто напечатал value , либо изменил бы его на end=','

например

for partner in value:
    print(f"{partner}".title(), end=", ")

или

print(f"{value}".title(), sep=', ' , end="")

Есть идеи?

10000