2016-12-02 14 views
-3

私はこのようなタプルのリストを持っているを変更します。Pythonは、リスト内のタプル

myList=[(u"hell world", 10),(u"hello mom", 20), (u"hello dad","5")] 

私はこのようなリストを取り戻すためには、各タプルを変更する必要があります

mySecondList= [(u"hell",u"world","10"),(u"hello",u"mom","20"), (u"hello",u"dad","5")] 

をどのように私がやる?

+6

タプルは不変なので、新しいタプルでリストを返す必要があります。 – Tobias

+1

あなたの試行を投稿してください.. –

+0

文字列 '.split'メソッドを使ってみてください。立ち往生した場合は、コードを投稿し、間違っていることを正確に説明してください。 –

答えて

0

タプルは不変型なので、作成したコンテンツは変更できません。おそらくあなたは変更可能なリストを試してみるべきです。

+0

ありがとうTobias!ありがとうMoinuddin Quadri!どちらの答えもうまくいきます!!! – CosimoCD

1

私は私のコメントのタプルに書いたようには不変ですが、あなたは、次のコードのようなものを使用することができます。

def modify(lst): 
    ret = [] 
    for tpl in lst: 
     ret.append(tuple([tpl[0].split(' '), tpl[1]])) 
    return ret 

それとも、発電機を使用してtupleコンストラクタに渡すことができます:

new_list = tuple(item[0].split(' ') + [item[1]]) for item in myData) 
4

あなたにリスト内包式を用いて所望の動作を実現することがあります。

[tuple(item[0].split() + [str(item[1])]) for item in myList] 
戻ります

[(u'hell', u'world', '10'), (u'hello', u'mom', '20'), (u'hello', u'dad', '5')] 

tuple自然の中で不変です。既存のタプルオブジェクトは変更できません。ここでは、新しく作成されたタプルオブジェクトで新しいリストを返します。

+0

@AvinashRaj彼はPython 2 ;-)を使用しています編集:ああ、心配しないでください、第3のコンポーネントは定期的なbytestringです。 – Tobias

関連する問題