1

['column1:abc,def', 'column2:hij,klm', 'column3:xyz,pqr']

の後の値を取得したい:。現在、分割すると、列1、列2、列3も考慮されますが、これは望ましくありません。値のみが必要です。これは、辞書のキーと値のペアに似ています。唯一の相違点は、文字列のリストであることです。

どのように分割しますか?

編集済み

user_widgets = Widgets.objects.filter(user_id = user_id)

if user_widgets:
    for widgets in user_widgets:
        widgets_list = widgets.gadgets_list     //[u'column1:', u'column2:', u'column3:widget_basicLine']

        print [item.split(":")[1].split(',') for item in widgets_list]  //yields list index out of range

しかし、widgets_list の値が端末からコピーされて渡されると、正しく実行されます。

user_widgets = Widgets.objects.filter(user_id = user_id)

if user_widgets:
    for widgets in user_widgets:
        widgets_list = [u'column1:', u'column2:', u'column3:widget_basicLine']

        print [item.split(":")[1].split(',') for item in widgets_list]  //prints correctly.

どこが間違っているのですか?

4

2 に答える 2

5

項目を「:」で分割してから、インデックス 1 の項目を「,」で分割できます。

>>> l = ['column1:abc,def', 'column2:hij,klm', 'column3:xyz,pqr']
>>> [item.split(":")[1].split(',') for item in l]
[['abc', 'def'], ['hij', 'klm'], ['xyz', 'pqr']]
于 2013-09-09T19:59:05.373 に答える