0

このようなリスト出力を取得しています。各リストに個別にアクセスできるように、リストを明確に分離したいのですが、どうすればよいですか

for Book in rootNode.getBooks():
    CompareTables=[]
    CompareTables.append(Book.getName())
    for Table in Book.getTables():
        CompareTables.append(Table.getName())
    print CompareTables

Output:

['Document', 'A','B','C']
['Document', 'A','B','C','D','E','F']

次のような出力が必要です。

print CompareTables1

Output:

 ['Document', 'A','B','C']

print CompareTables2

 ['Document', 'A','B','C','D','E','F']
4

2 に答える 2

3

新しいリストを作成して、本ごとのリストを次の場所に追加します。

all_compare_tables = []
for Book in rootNode.getBooks():
    CompareTables=[]
    CompareTables.append(Book.getName())
    for Table in Book.getTables():
        CompareTables.append(Table.getName())
    all_compare_tables.append(CompareTables)

print all_compare_tables[0]
print all_compare_tables[1]

# better yet, loop:

for compare_tables in all_compare_tables:
    print compare_tables

または、辞書を使用することもできます。

all_compare_tables = {}
for i, Book in enumerate(rootNode.getBooks(), 1):
    CompareTables=[]
    CompareTables.append(Book.getName())
    for Table in Book.getTables():
        CompareTables.append(Table.getName())
    all_compare_tables['CompareTables{}'.format(i)] = CompareTables

上記の例ではCompareTables1CompareTables2、 などのキーが生成されますが、もっと適切な名前を思いついたかもしれません。

これらを印刷すると、次のようになります。

print all_compare_tables['CompareTables1']
print all_compare_tables['CompareTables2']

all_compare_tables.keys()またはまたはall_compare_tables.values()シーケンスをループします。

于 2013-03-19T11:49:55.300 に答える
0

まあ、そのdictような場合のために作られています:

CompareTables = {}
for Book in rootNode.getBooks():
    book_name = Book.getName()
    CompareTables[book_name] = []
    for Table in Book.getTables():
        CompareTables[book_name].append(Table.getName())
    print CompareTables

ここでは、2 冊の本が同じタイトルDocumentのように見えるため、インデックスを使用してそれらを区別できます。

CompareTables = {}
for i, Book in enumerate(rootNode.getBooks(), 1):
    book_name = Book.getName() + str(i)
    CompareTables[book_name] = []
    for Table in Book.getTables():
        CompareTables[book_name].append(Table.getName())
    print CompareTables
于 2013-03-19T11:51:42.003 に答える