Ключи и значения печатаются отдельно в Python, но их нужно присоединить к строке - PullRequest
0 голосов
/ 07 февраля 2019

Поэтому я хотел бы, чтобы этот код печатался по-другому:

Код Python:

employees = {123: 'Bob', 124: 'Susan', 128: 'Abby', 125: 'Henry', 126: 'Edward', 127: 'James'}

for key in employees.keys():
    print("Employees Numbers: ", key)

for value in employees.values():
    print("Employee Names: ", value)

Печатается как:

Employees Numbers:  123                      
Employees Numbers:  124             
Employees Numbers:  128                         
Employees Numbers:  125                
Employees Numbers:  126            
Employees Numbers:  127              
Employee Names:  Bob                
Employee Names:  Susan               
Employee Names:  Abby              
Employee Names:  Henry             
Employee Names:  Edward             
Employee Names:  James  

Хотел бы, чтобы он печатался как:

Employee Numbers: 123, 124, 128, 125, 126, 127                     
Employee Names: Bob, Susan, Abby, Henry, Edward            

Ответы [ 5 ]

0 голосов
/ 07 февраля 2019
#!/usr/bin/env python


def main():
    employees = {123: 'Bob', 124: 'Susan', 128: 'Abby', 125: 'Henry', 126: 'Edward', 127: 'James'}

    print("employees ids:", ", ".join([str(x) for x in employees]))
    print("employees names:", ", ".join([str(x) for x in employees.values()]))


if __name__ == '__main__':
    main()

вывод:

employees ids: 123, 124, 128, 125, 126, 127
employees names: Bob, Susan, Abby, Henry, Edward, James
0 голосов
/ 07 февраля 2019

Сначала сохраните keys и values в отдельных lists, а затем используйте оператор join, чтобы заполнить их в string, разделенные comma.

Для номера сотрудника вам потребуется выполнить дополнительный шаг, чтобы преобразовать числа в strings (поскольку join работает только на string)

employees = {123: 'Bob', 124: 'Susan', 128: 'Abby', 125: 'Henry', 126: 'Edward', 127: 'James'}

numbers = list(employees.keys())
names = list(employees.values())

print("Employee Keys : ",', '.join([str(i) for i in numbers]))
print("Employee Names : ",', '.join(names))
0 голосов
/ 07 февраля 2019

Вы можете перебирать словарь и использовать форматированную строку для отображения

>>> employees = {123: 'Bob', 124: 'Susan', 128: 'Abby', 125: 'Henry', 126: 'Edward', 127: 'James'}
>>> print('Employee Numbers: {}'.format(', '.join(str(key) for key in employees.keys())))
Employee Numbers: 128, 123, 124, 125, 126, 127
>>> print('Employee Names: {}'.format(', '.join(value for value in employees.values())))
Employee Names: Abby, Bob, Susan, Henry, Edward, James
0 голосов
/ 07 февраля 2019
employees = {123: 'Bob', 124: 'Susan', 128: 'Abby', 125: 'Henry', 126: 'Edward', 127: 
'James'}


a=list(employees.keys())
str1=", ".join(str(e) for e in a)
print("Employee Numbers:",str1)


b=list(employees.values())
str2=", ".join(b)
print("Employee Names:",str2)
0 голосов
/ 07 февраля 2019

Вы можете выполнить циклическое переключение клавиш следующим образом:

print('Employee Numbers: {}'.format(', '.join(str(num) for num in employees.keys())))

Затем аналогично для имен:

print('Employee Names: {}'.format(', '.join(name for name in employees.values())))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...