как правильно использовать параметр sep в функции печати - PullRequest
0 голосов
/ 15 января 2020

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

brad_pitt = {
'name': ['brad pitt'],
'profession': ['actor'],
'birthday': ['18.12.1963'],
'sign': ['sagittarius'],
'birthplace': ['shawnee / oklahoma (usa)'],
'nationality': ['usa'],
'height': ['182 cm'],
'weight': ['76 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': ['28.10.1967'],
'sign': ['scorpion'],
'birthplace': ['atlanta / georgia (usa)'],
'nationality': ['usa'],
'height': ['174 cm'],
'weight': ['57 kg'], 
'marital status': ['married'],
'sex': ['female'],
'ex-partner': ['liam neeson'],
'eye color': ['brown'],
}

george_clooney = {
'name': ['george clooney'],
'profession': ['actor'],
'birthday': ['06.05.1961'],
'sign': ['taurus'],
'birthplace': ['lexington / kentucky (usa)'],
'nationality': ['usa'],
'height': ['180 cm'],
'weight': ['74 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 ]

1 голос
/ 15 января 2020

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

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

for key, value in person.items():
    print(f"{key.title()}: {','.join(v.title() for v in value)}")
0 голосов
/ 15 января 2020

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

например

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

или

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