1

私はの形でリストを持っています

[(u'a1', u'b1'),
 (u'a1', u'b2'),
 (u'c1', u'c2')]

私はそれを2つのリスト/列に分割したい

list1          list2    
[(u'a1',       [(u'b1'),
 (u'a1',       (u'b2'),
 (u'c1')]       (u'c2')]

Unicodeから文字列への変換も役立ちます!

また、別のケースでは、私は次の形式のリストを持っています

[(('a', 'c'), -3), (('a', 'd'), -7), (('c', 'd'), -4)]

次の形式の入力が必要です

('a','a','c')
('c','d','d')
(-3,-7,-4)

任意のヒント?

4

2 に答える 2

5

リスト内包表記を使用して、2つの新しいリストを作成できます。

x=[(u'a1', u'b1'),
 (u'a1', u'b2'),
 (u'c1', u'c2')]

list1 = [i[0] for i in x]

list2 = [i[1] for i in x]
于 2013-03-10T18:21:02.043 に答える
3

2番目の例:

>>> L = [(('a', 'c'), -3), (('a', 'd'), -7), (('c', 'd'), -4)]
>>> zip(*[(a[0], a[1], b) for a, b in L])
[('a', 'a', 'c'), ('c', 'd', 'd'), (-3, -7, -4)]

最初に各アイテムをフラット化し、次にリストを置き換えます。

于 2013-03-10T18:24:51.293 に答える