2015-05-30 2 views
-1

У меня есть список с двумя элементами, каждый элемент - это словарь. теперь я хочу напечатать элемент, но поскольку это dicts, питон записывает dicts, а не имя. любое предложение?Распечатать список элементов - python

sep_st = {0.0: [1.0, 'LBRG'], 0.26: [31.0, 'STIG']}  
sep_dy = {0.61: [29.0, 'STIG'], 0.09: [25.0, 'STIG']} 
sep = [sep_st, sep_dy] 
for item in sep: 
    for values in sorted(item.keys()): 
    p.write (str(item)) # here is where I want to write just the name of list element into a file 
    p.write (str(values)) 
    p.write (str(item[values]) +'\n') 
+2

Можете ли вы добавить ожидаемый результат? –

+1

'dict' не имеют имен. Это непонимание того, как работают переменные. Вы можете поместить ключ 'name' внутри' dict' и посмотреть его, если это то, что вам нужно. – khelwood

+0

@BhargavRao: вместо «sep_st» он пишет весь словарь, а не только имя – Fatemeh

ответ

2

Мое предложение состоит в том, что вы используете dict для sep, а не список. Таким образом, вы могли бы сделать имена Dict как строковые ключи для них:

sep_st = {0.0: [1.0, 'LBRG'], 0.26: [31.0, 'STIG']}  
sep_dy = {0.61: [29.0, 'STIG'], 0.09: [25.0, 'STIG']} 
sep = {"sep_st": sep_st, "sep_dy": sep_dy} # dict instead of list 
for item in sep: 
    for values in sorted(sep[item].keys()): 
    p.write (str(item)) 
    p.write (str(values)) 
    p.write (str(sep[item][values]) +'\n') 

Как вы можете видеть в this other question, что невозможно получить доступ к именам экземпляров, если вы подкласс Dict и передать имя конструктору пользовательского класса, так что ваш пользовательский экземпляр dict может иметь имя, к которому вы можете иметь доступ.

Так что в этом случае я предлагаю вам использовать dicts с ключами для хранения ваших dicts вместо списка.

1

Как sep список variables хранящего dictionaries, при попытке печати sep вы напечатаете dictionaries.

Если вам действительно нужно печатать каждый variableимя как string, один из способов сделать это, чтобы это также создать другой list с variable названиями строк:

sep_st = {0.0: [1.0, 'LBRG'], 0.26: [31.0, 'STIG']}  
sep_dy = {0.61: [29.0, 'STIG'], 0.09: [25.0, 'STIG']} 
sep = [sep_st, sep_dy] 
sep_name = ['sep_st', 'sep_dy'] 
for i in sep_name: 
    print i 

Тогда вы можете сделать остальная часть вашего кода.

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