Python - убрать скобки из вызова функции? - PullRequest
0 голосов
/ 22 октября 2018

Я пишу функцию, которая принимает 1 аргумент, и я хочу, чтобы аргумент был списком.Я получил практически все, что хотел, за исключением или ОДНОЙ вещи: `

def index_responses(a):
    j = {}
    count = 0
    key = 0
    for y in a:
       j["Q",key]=a[count]
       count+=1
       key+=1
    print(j)
    return a

Это вызовы функций:

print(index_responses(['a', 'b', 'c']))
print(index_responses(['d','d','b','e','e','e','d','a']))

И мой вывод такой:

{('Q', 0): 'a', ('Q', 1): 'b', ('Q', 2): 'c'}
{('Q', 0): 'd', ('Q', 1): 'd', ('Q', 2): 'b', ('Q', 3): 'e', ('Q', 4): 'e', ('Q', 5): 'e', ('Q', 6): 'd', ('Q', 7): 'a'}

Но мне нужно, чтобы мой вывод выглядел чище, а именно: {(Q1: 'a', Q2: 'b' (и т. Д.)

Как мне поступитьочистить вывод?

Спасибо за любые ответы.

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

I думаю , что вы хотите просто объединить 'Q' в строковое представление key:

   j["Q" + str(key)]=a[count]

Это изменение дает вывод

{'Q0': 'a', 'Q1': 'b', 'Q2': 'c'}
['a', 'b', 'c']
{'Q0': 'd', 'Q5': 'e', 'Q6': 'd', 'Q7': 'a', 'Q1': 'd', 'Q3': 'e', 'Q4': 'e', 'Q2': 'b'}
['d', 'd', 'b', 'e', 'e', 'e', 'd', 'a']

Есть лучшие способы подсчета предметов в списке;Я оставлю это для вашего исследования.

0 голосов
/ 22 октября 2018

Используйте "Q" + str(key) или f"Q{str(key)}" (на Python 3.6+) в цикле:

def index_responses(a):
    j = {}
    count = 0
    key = 1
    for y in a:
       j["Q" + str(key)] = a[count]
       count += 1
       key += 1
    return j

print(index_responses(['a', 'b', 'c']))
print(index_responses(['d','d','b','e','e','e','d','a']))

Также обратите внимание, что вам нужно вернуть j, а не a, который фактически является входом дляфункция.


Более чистым и более питонским способом получения того же результата было бы использование словаря-понимания:
def index_responses(a):
    return {f'Q{str(i)}': x for i, x in enumerate(a, 1)}

print(index_responses(['a', 'b', 'c']))
print(index_responses(['d','d','b','e','e','e','d','a']))

# {'Q1': 'a', 'Q2': 'b', 'Q3': 'c'}
# {'Q1': 'd', 'Q2': 'd', 'Q3': 'b', 'Q4': 'e', 'Q5': 'e', 'Q6': 'e', 'Q7': 'd', 'Q8': 'a'}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...