用python打印索引名

2024-05-13 01:50:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道如何输出列表和子列表中每个索引(和子索引)的名称,而不是值。在

例如,假设我有一个主列表,其中有3个其他列表,每个列表包含5个子列表。下面是一个小例子来说明:

List1 = [SubList1, SubList2, SubList3, SubList4, SubList5]
List2 = [Apple, Banana, Orange, Pear, Grape]
List3 = [Red, Yellow, Orange, Green, Purple]


Lists = [List1, List2, List3]

MainList = [Lists]

如何打印“列表1”?在

当我输入时

^{pr2}$

it输出

[SubList1, SubList2, ..., Sublist5]

我想要索引的实际名称,而不是它的值。在

我考虑过使用字典键,但是我用于XML转换的报表生成器将所有数据输出到列表中。这是否意味着我别无选择,只能修改报表生成器脚本以将数据输出到字典中?在


Tags: 数据名称列表字典报表lists例子orange
3条回答

快速解决方案:

class NamedList(list):
    __slots__ = ['__name__'] # optimisation, can be ommited
    def __init__(self, name, *args):
        super().__init__(*args)
        self.__name__ = name
    def __repr__(self):
        return "%s(%r, %s)" % (type(self).__name__, self.__name__, super().__repr__())

test = NamedList('test', [1, 2, 3])
print(test)
print(test.__name__)

输出:

^{pr2}$

为此,请尝试使用^{}

List1 = ['SubList1', 'SubList2', 'SubList3', 'SubList4', 'SubList5']
List2 = ['Apple', 'Banana', 'Orange', 'Pear', 'Grape']
List3 = ['Red', 'Yellow', 'Orange', 'Green', 'Purple']


xd = {'List1': List1, 'List2': List2, 'List3': List3}

print xd['List1']

for k, v in xd.iteritems():
    if v == List1:
        print k

>>> ['SubList1', 'SubList2', 'SubList3', 'SubList4', 'SubList5']
>>> List1

你好像误解了。示例中的List1是一个变量名。它不存储在列表数组中,只存储其值。所以你不会把列表1从列表中去掉。数组索引为整数,列表中List1的索引为0。正如另一位评论者建议的那样,您可能需要将列表结构转换为dict

Lists = {}
Lists['List1'] = [SubList1, SubList2, SubList3, SubList4, SubList5]
Lists['List2'] = [Apple, Banana, Orange, Pear, Grape]
Lists['List3'] = [Red, Yellow, Orange, Green, Purple]

print(Lists.keys())

相关问题 更多 >