打印列表项 - python

时间:2015-05-30 23:11:32

标签: python

我有一个包含两个项目的列表,每个项目都是一个字典。现在我想要打印项目,但因为这些是dicts,python写的是dicts而不是名字。有什么建议吗?

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 个答案:

答案 0 :(得分:2)

我的建议是你使用dict而不是列表。这样你就可以将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 :(得分:1)

由于sep是存储variables的{​​{1}}列表,当您尝试打印dictionaries时,您将打印sep

如果您确实需要将每个dictionaries 名称打印为variable,则执行此操作的一种方法是创建另一个string list名称为字符串:

variable

然后你可以完成其余的代码。