2014-01-09 4 views
0

как я должен сделать все числа одной строкой, а не несколькими отдельными строками?сделать несколько строк одной строкой в ​​списке

Я попытался, как это:

if len(key_val[1]) > 3: 
     dictio[key_val[0]] = list(str(key_val[1])) 

я получаю этот выход:

{'parameter': ['1', '1', '0', '7', '4', '1', '3', '3', '6', '2']} 

но строки должны быть только одна строка.

+2

Как вы думаете, 'list()' делает? – devnull

+0

Что такое 'key_val [1]'? –

+0

Делает key_val список. – bronsje

ответ

1

Вы должны изменить свой код на этот:

if len(key_val[1]) > 3: 
    dictio[key_val[0]] = [str(key_val[1])] 

Тогда ваш результат будет:

{'parameter': ['1107413362']} 

Причина заключается в том, что list() перебирает струны, что дает каждый символ, и что витки каждый символ в свой собственный элемент в списке. Если вы хотите просто иметь список, а строка - значение в этом списке, вы можете сделать то, что я показал выше, используя [], чтобы создать список с литеральным списком, если вы предварительно настроили этот ключ для уже списка , вы можете просто добавить строку к ней. Но я думаю, что то, что я показал выше, - это то, что вы ищете.

+0

ладно, спасибо. что сработало – bronsje

+0

Если вы чувствуете, что мой ответ помог вам, вы могли бы [Принять мой ответ] (http://meta.stackexchange.com/a/5235/192545). –

1

Если ожидаемый выход {'parameter': ['1107413362']} затем использовать список буквального:

dictio[key_val[0]] = [str(key_val[1])] 

list() конструктор только принимает итератор в качестве аргумента; он примет все элементы из аргумента, чтобы создать новый объект списка, а строка - это последовательность отдельных символов. Не используйте его, если вы хотите создать список , содержащий объект.

Смежные вопросы